Commit 08aa26b928592bbd7f1661e2bffa57459175062b

Authored by 朱显松
1 parent 6c476972

1.Android 13 存储权限适配

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
... ... @@ -21,7 +21,7 @@ ext {
21 21 //编译方式
22 22 debug : false,
23 23 //版本号
24   - version: "0.4.6",
  24 + version: "0.4.8",
25 25 //Lib库前缀
26 26 packeg : "com.cnlive.module",
27 27 //Lib库名称
... ...
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
1 1 include ':app', ':module_xiaojiaSoundBox'
2   -rootProject.name='XiaoJiaSpeaker'
... ...