Commit 841318b4613ea8766292b51895b3ef5e356f2935
1 parent
ecf81cbe
1.Android 13 存储权限适配
Showing
5 changed files
with
77 additions
and
13 deletions
app/src/main/AndroidManifest.xml
| ... | ... | @@ -4,7 +4,12 @@ |
| 4 | 4 | package="com.cnlive.strike.debug"> |
| 5 | 5 | |
| 6 | 6 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| 7 | - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | |
| 7 | + <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> | |
| 8 | + <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> | |
| 9 | + <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> | |
| 10 | + <uses-permission | |
| 11 | + android:name="android.permission.READ_EXTERNAL_STORAGE" | |
| 12 | + android:maxSdkVersion="32" /> | |
| 8 | 13 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
| 9 | 14 | <uses-permission android:name="android.permission.CAMERA" /> |
| 10 | 15 | <uses-permission android:name="android.permission.FLASHLIGHT" /> | ... | ... |
lib_media/src/main/AndroidManifest.xml
| ... | ... | @@ -2,7 +2,13 @@ |
| 2 | 2 | package="com.cnlive.media"> |
| 3 | 3 | |
| 4 | 4 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
| 5 | - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> | |
| 5 | + <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> | |
| 6 | + <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> | |
| 7 | + <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> | |
| 8 | + <uses-permission | |
| 9 | + android:name="android.permission.READ_EXTERNAL_STORAGE" | |
| 10 | + android:maxSdkVersion="32" /> | |
| 11 | + | |
| 6 | 12 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
| 7 | 13 | <uses-permission android:name="android.permission.CAMERA" /> |
| 8 | 14 | <uses-permission android:name="android.permission.FLASHLIGHT" /> | ... | ... |
lib_media/src/main/java/com/cnlive/media/ui/activity/MediaActivity.java
| ... | ... | @@ -3,6 +3,7 @@ package com.cnlive.media.ui.activity; |
| 3 | 3 | import android.Manifest; |
| 4 | 4 | import android.app.Dialog; |
| 5 | 5 | import android.content.Intent; |
| 6 | +import android.os.Build; | |
| 6 | 7 | import android.os.Bundle; |
| 7 | 8 | import android.util.Log; |
| 8 | 9 | import android.view.View; |
| ... | ... | @@ -125,11 +126,29 @@ public class MediaActivity extends MvpBindingActivity<MediaView, MediaPresenter, |
| 125 | 126 | //是否没有申请权限 |
| 126 | 127 | public boolean isNeverAsk; |
| 127 | 128 | //录制权限 |
| 128 | - public static String[] permissionsRecord = { | |
| 129 | - Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 129 | + public static String[] permissionsRecord = Build.VERSION.SDK_INT >= 33 ? | |
| 130 | + new String[]{ | |
| 131 | + Manifest.permission.CAMERA, | |
| 132 | + Manifest.permission.RECORD_AUDIO, | |
| 133 | + "android.permission.READ_MEDIA_IMAGES", | |
| 134 | + "android.permission.READ_MEDIA_AUDIO", | |
| 135 | + "android.permission.READ_MEDIA_VIDEO", | |
| 136 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 137 | + new String[]{ | |
| 138 | + Manifest.permission.CAMERA, | |
| 139 | + Manifest.permission.RECORD_AUDIO, | |
| 140 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 141 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 130 | 142 | // 存读取权限 |
| 131 | - public static String[] permissionsRead = { | |
| 132 | - Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 143 | + public static String[] permissionsRead = Build.VERSION.SDK_INT >= 33 ? | |
| 144 | + new String[]{ | |
| 145 | + "android.permission.READ_MEDIA_IMAGES", | |
| 146 | + "android.permission.READ_MEDIA_AUDIO", | |
| 147 | + "android.permission.READ_MEDIA_VIDEO", | |
| 148 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 149 | + new String[]{ | |
| 150 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 151 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 133 | 152 | private Media cropPath; |
| 134 | 153 | |
| 135 | 154 | ... | ... |
lib_media/src/main/java/com/cnlive/media/ui/activity/RecordActivity.java
| ... | ... | @@ -6,6 +6,7 @@ import android.content.Context; |
| 6 | 6 | import android.content.Intent; |
| 7 | 7 | import android.graphics.Bitmap; |
| 8 | 8 | import android.graphics.Color; |
| 9 | +import android.os.Build; | |
| 9 | 10 | import android.os.Bundle; |
| 10 | 11 | import android.view.WindowManager; |
| 11 | 12 | |
| ... | ... | @@ -57,8 +58,32 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent |
| 57 | 58 | public ArrayList<Media> selectMedia; |
| 58 | 59 | // 是否需要录音权限 |
| 59 | 60 | public boolean isNeedAudio = true; |
| 60 | - public static String[] permissionsRecord = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 61 | - public static String[] permissionsRecordNoAudio = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 61 | + public static String[] permissionsRecord = Build.VERSION.SDK_INT >= 33 ? | |
| 62 | + new String[]{ | |
| 63 | + Manifest.permission.CAMERA, | |
| 64 | + Manifest.permission.RECORD_AUDIO, | |
| 65 | + "android.permission.READ_MEDIA_IMAGES", | |
| 66 | + "android.permission.READ_MEDIA_AUDIO", | |
| 67 | + "android.permission.READ_MEDIA_VIDEO", | |
| 68 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 69 | + new String[]{ | |
| 70 | + Manifest.permission.CAMERA, | |
| 71 | + Manifest.permission.RECORD_AUDIO, | |
| 72 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 73 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 74 | + public static String[] permissionsRecordNoAudio = Build.VERSION.SDK_INT >= 33 ? | |
| 75 | + new String[]{ | |
| 76 | + Manifest.permission.CAMERA, | |
| 77 | + Manifest.permission.RECORD_AUDIO, | |
| 78 | + "android.permission.READ_MEDIA_IMAGES", | |
| 79 | + "android.permission.READ_MEDIA_AUDIO", | |
| 80 | + "android.permission.READ_MEDIA_VIDEO", | |
| 81 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 82 | + new String[]{ | |
| 83 | + Manifest.permission.CAMERA, | |
| 84 | + Manifest.permission.RECORD_AUDIO, | |
| 85 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 86 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 62 | 87 | |
| 63 | 88 | public static void newInstance(Context context, ImagePickerOptions mOptions) { |
| 64 | 89 | Intent intent = new Intent(); | ... | ... |
lib_media/src/main/java/com/cnlive/media/ui/fragment/RecordFragment.java
| ... | ... | @@ -5,6 +5,7 @@ import android.content.Context; |
| 5 | 5 | import android.content.pm.PackageManager; |
| 6 | 6 | import android.graphics.Bitmap; |
| 7 | 7 | import android.media.AudioManager; |
| 8 | +import android.os.Build; | |
| 8 | 9 | import android.os.Bundle; |
| 9 | 10 | import android.text.TextUtils; |
| 10 | 11 | import android.util.Log; |
| ... | ... | @@ -80,11 +81,19 @@ public class RecordFragment extends MvpBindingFragment<RecordFragmentView, Recor |
| 80 | 81 | |
| 81 | 82 | boolean hasPermisson = true; |
| 82 | 83 | |
| 83 | - for (String permisson : new String[]{ | |
| 84 | - Manifest.permission.CAMERA, | |
| 85 | - Manifest.permission.RECORD_AUDIO, | |
| 86 | - Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 87 | - Manifest.permission.WRITE_EXTERNAL_STORAGE}) { | |
| 84 | + for (String permisson : Build.VERSION.SDK_INT >= 33 ? | |
| 85 | + new String[]{ | |
| 86 | + Manifest.permission.CAMERA, | |
| 87 | + Manifest.permission.RECORD_AUDIO, | |
| 88 | + "android.permission.READ_MEDIA_IMAGES", | |
| 89 | + "android.permission.READ_MEDIA_AUDIO", | |
| 90 | + "android.permission.READ_MEDIA_VIDEO", | |
| 91 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 92 | + new String[]{ | |
| 93 | + Manifest.permission.CAMERA, | |
| 94 | + Manifest.permission.RECORD_AUDIO, | |
| 95 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 96 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}) { | |
| 88 | 97 | if (ActivityCompat.checkSelfPermission(getActivity(), permisson) != PackageManager.PERMISSION_GRANTED) { |
| 89 | 98 | hasPermisson = false; |
| 90 | 99 | break; | ... | ... |