Commit 841318b4613ea8766292b51895b3ef5e356f2935

Authored by 朱显松
1 parent ecf81cbe

1.Android 13 存储权限适配

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&lt;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&lt;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&lt;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;
... ...