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,7 +4,12 @@ | ||
| 4 | package="com.cnlive.strike.debug"> | 4 | package="com.cnlive.strike.debug"> |
| 5 | 5 | ||
| 6 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 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 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> | 13 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
| 9 | <uses-permission android:name="android.permission.CAMERA" /> | 14 | <uses-permission android:name="android.permission.CAMERA" /> |
| 10 | <uses-permission android:name="android.permission.FLASHLIGHT" /> | 15 | <uses-permission android:name="android.permission.FLASHLIGHT" /> |
lib_media/src/main/AndroidManifest.xml
| @@ -2,7 +2,13 @@ | @@ -2,7 +2,13 @@ | ||
| 2 | package="com.cnlive.media"> | 2 | package="com.cnlive.media"> |
| 3 | 3 | ||
| 4 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> | 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 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> | 12 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
| 7 | <uses-permission android:name="android.permission.CAMERA" /> | 13 | <uses-permission android:name="android.permission.CAMERA" /> |
| 8 | <uses-permission android:name="android.permission.FLASHLIGHT" /> | 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,6 +3,7 @@ package com.cnlive.media.ui.activity; | ||
| 3 | import android.Manifest; | 3 | import android.Manifest; |
| 4 | import android.app.Dialog; | 4 | import android.app.Dialog; |
| 5 | import android.content.Intent; | 5 | import android.content.Intent; |
| 6 | +import android.os.Build; | ||
| 6 | import android.os.Bundle; | 7 | import android.os.Bundle; |
| 7 | import android.util.Log; | 8 | import android.util.Log; |
| 8 | import android.view.View; | 9 | import android.view.View; |
| @@ -125,11 +126,29 @@ public class MediaActivity extends MvpBindingActivity<MediaView, MediaPresenter, | @@ -125,11 +126,29 @@ public class MediaActivity extends MvpBindingActivity<MediaView, MediaPresenter, | ||
| 125 | //是否没有申请权限 | 126 | //是否没有申请权限 |
| 126 | public boolean isNeverAsk; | 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 | private Media cropPath; | 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 +6,7 @@ import android.content.Context; | ||
| 6 | import android.content.Intent; | 6 | import android.content.Intent; |
| 7 | import android.graphics.Bitmap; | 7 | import android.graphics.Bitmap; |
| 8 | import android.graphics.Color; | 8 | import android.graphics.Color; |
| 9 | +import android.os.Build; | ||
| 9 | import android.os.Bundle; | 10 | import android.os.Bundle; |
| 10 | import android.view.WindowManager; | 11 | import android.view.WindowManager; |
| 11 | 12 | ||
| @@ -57,8 +58,32 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent | @@ -57,8 +58,32 @@ public class RecordActivity extends MvpBindingActivity<RecordView, RecordPresent | ||
| 57 | public ArrayList<Media> selectMedia; | 58 | public ArrayList<Media> selectMedia; |
| 58 | // 是否需要录音权限 | 59 | // 是否需要录音权限 |
| 59 | public boolean isNeedAudio = true; | 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 | public static void newInstance(Context context, ImagePickerOptions mOptions) { | 88 | public static void newInstance(Context context, ImagePickerOptions mOptions) { |
| 64 | Intent intent = new Intent(); | 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,6 +5,7 @@ import android.content.Context; | ||
| 5 | import android.content.pm.PackageManager; | 5 | import android.content.pm.PackageManager; |
| 6 | import android.graphics.Bitmap; | 6 | import android.graphics.Bitmap; |
| 7 | import android.media.AudioManager; | 7 | import android.media.AudioManager; |
| 8 | +import android.os.Build; | ||
| 8 | import android.os.Bundle; | 9 | import android.os.Bundle; |
| 9 | import android.text.TextUtils; | 10 | import android.text.TextUtils; |
| 10 | import android.util.Log; | 11 | import android.util.Log; |
| @@ -80,11 +81,19 @@ public class RecordFragment extends MvpBindingFragment<RecordFragmentView, Recor | @@ -80,11 +81,19 @@ public class RecordFragment extends MvpBindingFragment<RecordFragmentView, Recor | ||
| 80 | 81 | ||
| 81 | boolean hasPermisson = true; | 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 | if (ActivityCompat.checkSelfPermission(getActivity(), permisson) != PackageManager.PERMISSION_GRANTED) { | 97 | if (ActivityCompat.checkSelfPermission(getActivity(), permisson) != PackageManager.PERMISSION_GRANTED) { |
| 89 | hasPermisson = false; | 98 | hasPermisson = false; |
| 90 | break; | 99 | break; |