Commit 08aa26b928592bbd7f1661e2bffa57459175062b
1 parent
6c476972
1.Android 13 存储权限适配
Showing
9 changed files
with
37 additions
and
26 deletions
app/build.gradle
| ... | ... | @@ -5,11 +5,12 @@ static def stringValue(def value) { |
| 5 | 5 | } |
| 6 | 6 | |
| 7 | 7 | android { |
| 8 | - compileSdkVersion 29 | |
| 8 | + compileSdkVersion 33 | |
| 9 | + buildToolsVersion = '30.0.3' | |
| 9 | 10 | defaultConfig { |
| 10 | 11 | applicationId "com.cnlive.strike" |
| 11 | 12 | minSdkVersion 18 |
| 12 | - targetSdkVersion 29 | |
| 13 | + targetSdkVersion 33 | |
| 13 | 14 | versionCode 1 |
| 14 | 15 | versionName "1.0" |
| 15 | 16 | testInstrumentationRunner "android.test.runner.AndroidJUnitRunner" |
| ... | ... | @@ -63,12 +64,9 @@ android { |
| 63 | 64 | javaMaxHeapSize '4g' |
| 64 | 65 | } |
| 65 | 66 | compileOptions { |
| 66 | - sourceCompatibility = 1.8 | |
| 67 | - targetCompatibility = 1.8 | |
| 67 | + sourceCompatibility JavaVersion.VERSION_1_8 | |
| 68 | + targetCompatibility JavaVersion.VERSION_1_8 | |
| 68 | 69 | } |
| 69 | - | |
| 70 | - | |
| 71 | - buildToolsVersion = '29.0.2' | |
| 72 | 70 | } |
| 73 | 71 | |
| 74 | 72 | dependencies { | ... | ... |
build.gradle
| ... | ... | @@ -8,7 +8,7 @@ buildscript { |
| 8 | 8 | |
| 9 | 9 | } |
| 10 | 10 | dependencies { |
| 11 | - classpath 'com.android.tools.build:gradle:3.5.1' | |
| 11 | + classpath 'com.android.tools.build:gradle:3.3.2' | |
| 12 | 12 | classpath "com.alibaba:arouter-register:1.0.2" |
| 13 | 13 | // NOTE: Do not place your application dependencies here; they belong |
| 14 | 14 | // in the individual module build.gradle files |
| ... | ... | @@ -44,10 +44,10 @@ ext { |
| 44 | 44 | versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild |
| 45 | 45 | versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}" |
| 46 | 46 | |
| 47 | - compileSdkVersion = 28 | |
| 47 | + compileSdkVersion = 33 | |
| 48 | 48 | buildToolsVersion = "28.0.3" |
| 49 | 49 | minSdkVersion = 18 |
| 50 | - targetSdkVersion = 27 | |
| 50 | + targetSdkVersion = 33 | |
| 51 | 51 | |
| 52 | 52 | //support 相关 |
| 53 | 53 | supportV4 = '28.0.0' | ... | ... |
config.gradle
gradle.properties
| ... | ... | @@ -11,10 +11,9 @@ org.gradle.jvmargs=-Xmx1536m |
| 11 | 11 | # This option should only be used with decoupled projects. More details, visit |
| 12 | 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects |
| 13 | 13 | # org.gradle.parallel=true |
| 14 | -# AndroidX package structure to make it clearer which packages are bundled with the | |
| 15 | -# Android operating system, and which are packaged with your app's APK | |
| 16 | -# https://developer.android.com/topic/libraries/support-library/androidx-rn | |
| 14 | +#android.useAndroidX=true | |
| 15 | +#android.enableJetifier=true | |
| 16 | +android.injected.testOnly=false | |
| 17 | 17 | android.useAndroidX=true |
| 18 | -# Automatically convert third-party libraries to use AndroidX | |
| 19 | 18 | android.enableJetifier=true |
| 20 | 19 | ... | ... |
gradle/wrapper/gradle-wrapper.properties
| 1 | -#Tue Aug 27 10:06:28 CST 2019 | |
| 1 | +#Mon May 06 14:30:22 CST 2019 | |
| 2 | 2 | distributionBase=GRADLE_USER_HOME |
| 3 | 3 | distributionPath=wrapper/dists |
| 4 | 4 | zipStoreBase=GRADLE_USER_HOME |
| 5 | 5 | zipStorePath=wrapper/dists |
| 6 | -distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip | |
| 6 | +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip | ... | ... |
module_xiaojiaSoundBox/build.gradle
| ... | ... | @@ -6,12 +6,12 @@ static def stringValue(def value) { |
| 6 | 6 | } |
| 7 | 7 | |
| 8 | 8 | android { |
| 9 | - compileSdkVersion 28 | |
| 10 | - | |
| 9 | + compileSdkVersion 33 | |
| 10 | + buildToolsVersion = '30.0.3' | |
| 11 | 11 | |
| 12 | 12 | defaultConfig { |
| 13 | 13 | minSdkVersion 18 |
| 14 | - targetSdkVersion 28 | |
| 14 | + targetSdkVersion 33 | |
| 15 | 15 | versionCode 1 |
| 16 | 16 | versionName "1.0" |
| 17 | 17 | ... | ... |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/ui/activity/ShareFriendActivity.java
| ... | ... | @@ -8,6 +8,8 @@ import android.graphics.Bitmap; |
| 8 | 8 | import android.graphics.BitmapFactory; |
| 9 | 9 | import androidx.core.content.ContextCompat; |
| 10 | 10 | import androidx.appcompat.app.AppCompatActivity; |
| 11 | + | |
| 12 | +import android.os.Build; | |
| 11 | 13 | import android.os.Bundle; |
| 12 | 14 | import android.util.Base64; |
| 13 | 15 | import android.view.View; |
| ... | ... | @@ -118,8 +120,15 @@ import java.io.ByteArrayOutputStream; |
| 118 | 120 | .withActivity(this) |
| 119 | 121 | .getPermissions(this |
| 120 | 122 | , 100 |
| 121 | - , Manifest.permission.WRITE_EXTERNAL_STORAGE | |
| 122 | - , Manifest.permission.READ_EXTERNAL_STORAGE | |
| 123 | + , Build.VERSION.SDK_INT >= 33 ? | |
| 124 | + new String[]{ | |
| 125 | + Manifest.permission.READ_MEDIA_IMAGES, | |
| 126 | + Manifest.permission.READ_MEDIA_AUDIO, | |
| 127 | + Manifest.permission.READ_MEDIA_VIDEO, | |
| 128 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 129 | + new String[]{ | |
| 130 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 131 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} | |
| 123 | 132 | ); |
| 124 | 133 | } |
| 125 | 134 | ... | ... |
module_xiaojiaSoundBox/src/main/java/com/cnlive/strike/xiaojiaspeaker/util/utilcode/constant/PermissionConstants.java
| ... | ... | @@ -63,9 +63,15 @@ public final class PermissionConstants { |
| 63 | 63 | permission.SEND_SMS, permission.RECEIVE_SMS, permission.READ_SMS, |
| 64 | 64 | permission.RECEIVE_WAP_PUSH, permission.RECEIVE_MMS, |
| 65 | 65 | }; |
| 66 | - private static final String[] GROUP_STORAGE = { | |
| 67 | - permission.READ_EXTERNAL_STORAGE, permission.WRITE_EXTERNAL_STORAGE, | |
| 68 | - }; | |
| 66 | + private static final String[] GROUP_STORAGE = Build.VERSION.SDK_INT >= 33 ? | |
| 67 | + new String[]{ | |
| 68 | + Manifest.permission.READ_MEDIA_IMAGES, | |
| 69 | + Manifest.permission.READ_MEDIA_AUDIO, | |
| 70 | + Manifest.permission.READ_MEDIA_VIDEO, | |
| 71 | + Manifest.permission.WRITE_EXTERNAL_STORAGE} : | |
| 72 | + new String[]{ | |
| 73 | + Manifest.permission.READ_EXTERNAL_STORAGE, | |
| 74 | + Manifest.permission.WRITE_EXTERNAL_STORAGE}; | |
| 69 | 75 | |
| 70 | 76 | @StringDef({CALENDAR, CAMERA, CONTACTS, LOCATION, MICROPHONE, PHONE, SENSORS, SMS, STORAGE,}) |
| 71 | 77 | @Retention(RetentionPolicy.SOURCE) | ... | ... |
settings.gradle