Commit 855a674be47c3115ab55df0e5f302f20370018af

Authored by 朱显松
1 parent ee18f83d

1.Android 13 存储权限适配

build.gradle
@@ -45,10 +45,10 @@ ext { @@ -45,10 +45,10 @@ ext {
45 versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild 45 versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild
46 versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}" 46 versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}"
47 47
48 - compileSdkVersion = 31  
49 - buildToolsVersion = "29.0.2" 48 + compileSdkVersion = 33
  49 + buildToolsVersion = "30.0.3"
50 minSdkVersion = 19 50 minSdkVersion = 19
51 - targetSdkVersion = 31 51 + targetSdkVersion = 33
52 52
53 libNewMediaPicker = '1.0.1.8' 53 libNewMediaPicker = '1.0.1.8'
54 appArch = '1.3.6.2-androidx-beta1' 54 appArch = '1.3.6.2-androidx-beta1'
config.gradle
@@ -21,7 +21,7 @@ ext { @@ -21,7 +21,7 @@ ext {
21 //编译方式 21 //编译方式
22 debug : false, 22 debug : false,
23 //版本号 23 //版本号
24 - version: "1.3.8", 24 + version: "1.3.9",
25 //Lib库前缀 25 //Lib库前缀
26 packeg : "com.cnlive.module", 26 packeg : "com.cnlive.module",
27 //Lib库名称 27 //Lib库名称
moudle_pedometer/src/main/AndroidManifest.xml
@@ -9,7 +9,12 @@ @@ -9,7 +9,12 @@
9 <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <!-- 计歩需要的权限 --> 9 <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <!-- 计歩需要的权限 -->
10 <uses-permission android:name="android.permission.VIBRATE" /> 10 <uses-permission android:name="android.permission.VIBRATE" />
11 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 11 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
12 - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- //获取设备网络状态,禁用后无法获取网络状态 --> 12 + <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
  13 + <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
  14 + <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
  15 + <uses-permission
  16 + android:name="android.permission.READ_EXTERNAL_STORAGE"
  17 + android:maxSdkVersion="32" />
13 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- //网络权限,当禁用后,无法进行检索等相关业务 --> 18 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- //网络权限,当禁用后,无法进行检索等相关业务 -->
14 <uses-permission android:name="android.permission.INTERNET" /> <!-- //读取设备硬件信息,统计数据 --> 19 <uses-permission android:name="android.permission.INTERNET" /> <!-- //读取设备硬件信息,统计数据 -->
15 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- //读取系统信息,包含系统版本等信息,用作统计 --> 20 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- //读取系统信息,包含系统版本等信息,用作统计 -->
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/CollPedometerMainActivity.java
@@ -131,20 +131,25 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity { @@ -131,20 +131,25 @@ public class CollPedometerMainActivity extends QMUIFragmentActivity {
131 */ 131 */
132 public void getPermissionsWithTip() { 132 public void getPermissionsWithTip() {
133 String[] permissions = null; 133 String[] permissions = null;
134 - if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {  
135 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 134 + if (android.os.Build.VERSION.SDK_INT < 29) {
  135 + permissions = new String[]{
  136 + Manifest.permission.READ_EXTERNAL_STORAGE,
136 Manifest.permission.WRITE_EXTERNAL_STORAGE, 137 Manifest.permission.WRITE_EXTERNAL_STORAGE,
137 Manifest.permission.ACCESS_FINE_LOCATION, 138 Manifest.permission.ACCESS_FINE_LOCATION,
138 Manifest.permission.ACCESS_COARSE_LOCATION}; 139 Manifest.permission.ACCESS_COARSE_LOCATION};
139 - } else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {  
140 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 140 + } else if (android.os.Build.VERSION.SDK_INT < 33) {
  141 + permissions = new String[]{
  142 + Manifest.permission.READ_EXTERNAL_STORAGE,
141 Manifest.permission.WRITE_EXTERNAL_STORAGE, 143 Manifest.permission.WRITE_EXTERNAL_STORAGE,
142 Manifest.permission.ACCESS_FINE_LOCATION, 144 Manifest.permission.ACCESS_FINE_LOCATION,
143 Manifest.permission.ACCESS_COARSE_LOCATION, 145 Manifest.permission.ACCESS_COARSE_LOCATION,
144 Manifest.permission.ACCESS_BACKGROUND_LOCATION, 146 Manifest.permission.ACCESS_BACKGROUND_LOCATION,
145 Manifest.permission.ACTIVITY_RECOGNITION}; 147 Manifest.permission.ACTIVITY_RECOGNITION};
146 } else { 148 } else {
147 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 149 + permissions = new String[]{
  150 + Manifest.permission.READ_MEDIA_IMAGES,
  151 + Manifest.permission.READ_MEDIA_AUDIO,
  152 + Manifest.permission.READ_MEDIA_VIDEO,
148 Manifest.permission.WRITE_EXTERNAL_STORAGE, 153 Manifest.permission.WRITE_EXTERNAL_STORAGE,
149 Manifest.permission.ACCESS_FINE_LOCATION, 154 Manifest.permission.ACCESS_FINE_LOCATION,
150 Manifest.permission.ACCESS_COARSE_LOCATION, 155 Manifest.permission.ACCESS_COARSE_LOCATION,
moudle_pedometer/src/main/java/com/cnlive/moudle/collectionTrace/ui/activity/StartCollectTraceActivity.java
@@ -107,20 +107,25 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity { @@ -107,20 +107,25 @@ public class StartCollectTraceActivity extends QMUIFragmentActivity {
107 return; 107 return;
108 } 108 }
109 String[] permissions = null; 109 String[] permissions = null;
110 - if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {  
111 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 110 + if (android.os.Build.VERSION.SDK_INT < 29) {
  111 + permissions = new String[]{
  112 + Manifest.permission.READ_EXTERNAL_STORAGE,
112 Manifest.permission.WRITE_EXTERNAL_STORAGE, 113 Manifest.permission.WRITE_EXTERNAL_STORAGE,
113 Manifest.permission.ACCESS_FINE_LOCATION, 114 Manifest.permission.ACCESS_FINE_LOCATION,
114 Manifest.permission.ACCESS_COARSE_LOCATION}; 115 Manifest.permission.ACCESS_COARSE_LOCATION};
115 - } else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {  
116 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 116 + } else if (android.os.Build.VERSION.SDK_INT < 33) {
  117 + permissions = new String[]{
  118 + Manifest.permission.READ_EXTERNAL_STORAGE,
117 Manifest.permission.WRITE_EXTERNAL_STORAGE, 119 Manifest.permission.WRITE_EXTERNAL_STORAGE,
118 Manifest.permission.ACCESS_FINE_LOCATION, 120 Manifest.permission.ACCESS_FINE_LOCATION,
119 Manifest.permission.ACCESS_COARSE_LOCATION, 121 Manifest.permission.ACCESS_COARSE_LOCATION,
120 Manifest.permission.ACCESS_BACKGROUND_LOCATION, 122 Manifest.permission.ACCESS_BACKGROUND_LOCATION,
121 Manifest.permission.ACTIVITY_RECOGNITION}; 123 Manifest.permission.ACTIVITY_RECOGNITION};
122 } else { 124 } else {
123 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 125 + permissions = new String[]{
  126 + Manifest.permission.READ_MEDIA_IMAGES,
  127 + Manifest.permission.READ_MEDIA_AUDIO,
  128 + Manifest.permission.READ_MEDIA_VIDEO,
124 Manifest.permission.WRITE_EXTERNAL_STORAGE, 129 Manifest.permission.WRITE_EXTERNAL_STORAGE,
125 Manifest.permission.ACCESS_FINE_LOCATION, 130 Manifest.permission.ACCESS_FINE_LOCATION,
126 Manifest.permission.ACCESS_COARSE_LOCATION, 131 Manifest.permission.ACCESS_COARSE_LOCATION,
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/RunRaceDetailActivity.java
@@ -230,20 +230,25 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity { @@ -230,20 +230,25 @@ public class RunRaceDetailActivity extends QMUIFragmentActivity {
230 return; 230 return;
231 } 231 }
232 String[] permissions = null; 232 String[] permissions = null;
233 - if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {  
234 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 233 + if (android.os.Build.VERSION.SDK_INT < 29) {
  234 + permissions = new String[]{
  235 + Manifest.permission.READ_EXTERNAL_STORAGE,
235 Manifest.permission.WRITE_EXTERNAL_STORAGE, 236 Manifest.permission.WRITE_EXTERNAL_STORAGE,
236 Manifest.permission.ACCESS_FINE_LOCATION, 237 Manifest.permission.ACCESS_FINE_LOCATION,
237 Manifest.permission.ACCESS_COARSE_LOCATION}; 238 Manifest.permission.ACCESS_COARSE_LOCATION};
238 - } else if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.S) {  
239 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 239 + } else if (android.os.Build.VERSION.SDK_INT < 33) {
  240 + permissions = new String[]{
  241 + Manifest.permission.READ_EXTERNAL_STORAGE,
240 Manifest.permission.WRITE_EXTERNAL_STORAGE, 242 Manifest.permission.WRITE_EXTERNAL_STORAGE,
241 Manifest.permission.ACCESS_FINE_LOCATION, 243 Manifest.permission.ACCESS_FINE_LOCATION,
242 Manifest.permission.ACCESS_COARSE_LOCATION, 244 Manifest.permission.ACCESS_COARSE_LOCATION,
243 Manifest.permission.ACCESS_BACKGROUND_LOCATION, 245 Manifest.permission.ACCESS_BACKGROUND_LOCATION,
244 Manifest.permission.ACTIVITY_RECOGNITION}; 246 Manifest.permission.ACTIVITY_RECOGNITION};
245 } else { 247 } else {
246 - permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, 248 + permissions = new String[]{
  249 + Manifest.permission.READ_MEDIA_IMAGES,
  250 + Manifest.permission.READ_MEDIA_AUDIO,
  251 + Manifest.permission.READ_MEDIA_VIDEO,
247 Manifest.permission.WRITE_EXTERNAL_STORAGE, 252 Manifest.permission.WRITE_EXTERNAL_STORAGE,
248 Manifest.permission.ACCESS_FINE_LOCATION, 253 Manifest.permission.ACCESS_FINE_LOCATION,
249 Manifest.permission.ACCESS_COARSE_LOCATION, 254 Manifest.permission.ACCESS_COARSE_LOCATION,
moudle_pedometer/src/main/java/com/cnlive/moudle/pedometer/ui/activity/ShareRecordActivity.java
@@ -7,6 +7,8 @@ import android.content.Intent; @@ -7,6 +7,8 @@ import android.content.Intent;
7 import android.content.SharedPreferences; 7 import android.content.SharedPreferences;
8 import android.graphics.Bitmap; 8 import android.graphics.Bitmap;
9 import androidx.appcompat.app.AppCompatActivity; 9 import androidx.appcompat.app.AppCompatActivity;
  10 +
  11 +import android.os.Build;
10 import android.os.Bundle; 12 import android.os.Bundle;
11 import android.text.Editable; 13 import android.text.Editable;
12 import android.text.TextWatcher; 14 import android.text.TextWatcher;
@@ -187,8 +189,15 @@ public class ShareRecordActivity extends AppCompatActivity { @@ -187,8 +189,15 @@ public class ShareRecordActivity extends AppCompatActivity {
187 .withActivity(this) 189 .withActivity(this)
188 .getPermissions(this 190 .getPermissions(this
189 , 100 191 , 100
190 - , Manifest.permission.WRITE_EXTERNAL_STORAGE  
191 - , Manifest.permission.READ_EXTERNAL_STORAGE 192 + , Build.VERSION.SDK_INT >= 33 ?
  193 + new String[]{
  194 + Manifest.permission.READ_MEDIA_IMAGES,
  195 + Manifest.permission.READ_MEDIA_AUDIO,
  196 + Manifest.permission.READ_MEDIA_VIDEO,
  197 + Manifest.permission.WRITE_EXTERNAL_STORAGE} :
  198 + new String[]{
  199 + Manifest.permission.READ_EXTERNAL_STORAGE,
  200 + Manifest.permission.WRITE_EXTERNAL_STORAGE}
192 ); 201 );
193 } 202 }
194 } 203 }