Commit 855a674be47c3115ab55df0e5f302f20370018af
1 parent
ee18f83d
1.Android 13 存储权限适配
Showing
7 changed files
with
51 additions
and
22 deletions
build.gradle
| ... | ... | @@ -45,10 +45,10 @@ ext { |
| 45 | 45 | versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild |
| 46 | 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 | 50 | minSdkVersion = 19 |
| 51 | - targetSdkVersion = 31 | |
| 51 | + targetSdkVersion = 33 | |
| 52 | 52 | |
| 53 | 53 | libNewMediaPicker = '1.0.1.8' |
| 54 | 54 | appArch = '1.3.6.2-androidx-beta1' | ... | ... |
config.gradle
moudle_pedometer/src/main/AndroidManifest.xml
| ... | ... | @@ -9,7 +9,12 @@ |
| 9 | 9 | <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <!-- 计歩需要的权限 --> |
| 10 | 10 | <uses-permission android:name="android.permission.VIBRATE" /> |
| 11 | 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 | 18 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- //网络权限,当禁用后,无法进行检索等相关业务 --> |
| 14 | 19 | <uses-permission android:name="android.permission.INTERNET" /> <!-- //读取设备硬件信息,统计数据 --> |
| 15 | 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 | 131 | */ |
| 132 | 132 | public void getPermissionsWithTip() { |
| 133 | 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 | 137 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 137 | 138 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 138 | 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 | 143 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 142 | 144 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 143 | 145 | Manifest.permission.ACCESS_COARSE_LOCATION, |
| 144 | 146 | Manifest.permission.ACCESS_BACKGROUND_LOCATION, |
| 145 | 147 | Manifest.permission.ACTIVITY_RECOGNITION}; |
| 146 | 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 | 153 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 149 | 154 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 150 | 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 | 107 | return; |
| 108 | 108 | } |
| 109 | 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 | 113 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 113 | 114 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 114 | 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 | 119 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 118 | 120 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 119 | 121 | Manifest.permission.ACCESS_COARSE_LOCATION, |
| 120 | 122 | Manifest.permission.ACCESS_BACKGROUND_LOCATION, |
| 121 | 123 | Manifest.permission.ACTIVITY_RECOGNITION}; |
| 122 | 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 | 129 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 125 | 130 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 126 | 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 | 230 | return; |
| 231 | 231 | } |
| 232 | 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 | 236 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 236 | 237 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 237 | 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 | 242 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 241 | 243 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 242 | 244 | Manifest.permission.ACCESS_COARSE_LOCATION, |
| 243 | 245 | Manifest.permission.ACCESS_BACKGROUND_LOCATION, |
| 244 | 246 | Manifest.permission.ACTIVITY_RECOGNITION}; |
| 245 | 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 | 252 | Manifest.permission.WRITE_EXTERNAL_STORAGE, |
| 248 | 253 | Manifest.permission.ACCESS_FINE_LOCATION, |
| 249 | 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 | 7 | import android.content.SharedPreferences; |
| 8 | 8 | import android.graphics.Bitmap; |
| 9 | 9 | import androidx.appcompat.app.AppCompatActivity; |
| 10 | + | |
| 11 | +import android.os.Build; | |
| 10 | 12 | import android.os.Bundle; |
| 11 | 13 | import android.text.Editable; |
| 12 | 14 | import android.text.TextWatcher; |
| ... | ... | @@ -187,8 +189,15 @@ public class ShareRecordActivity extends AppCompatActivity { |
| 187 | 189 | .withActivity(this) |
| 188 | 190 | .getPermissions(this |
| 189 | 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 | } | ... | ... |