Commit 08aa26b928592bbd7f1661e2bffa57459175062b

Authored by 朱显松
1 parent 6c476972

1.Android 13 存储权限适配

app/build.gradle
@@ -5,11 +5,12 @@ static def stringValue(def value) { @@ -5,11 +5,12 @@ static def stringValue(def value) {
5 } 5 }
6 6
7 android { 7 android {
8 - compileSdkVersion 29 8 + compileSdkVersion 33
  9 + buildToolsVersion = '30.0.3'
9 defaultConfig { 10 defaultConfig {
10 applicationId "com.cnlive.strike" 11 applicationId "com.cnlive.strike"
11 minSdkVersion 18 12 minSdkVersion 18
12 - targetSdkVersion 29 13 + targetSdkVersion 33
13 versionCode 1 14 versionCode 1
14 versionName "1.0" 15 versionName "1.0"
15 testInstrumentationRunner "android.test.runner.AndroidJUnitRunner" 16 testInstrumentationRunner "android.test.runner.AndroidJUnitRunner"
@@ -63,12 +64,9 @@ android { @@ -63,12 +64,9 @@ android {
63 javaMaxHeapSize '4g' 64 javaMaxHeapSize '4g'
64 } 65 }
65 compileOptions { 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 dependencies { 72 dependencies {
build.gradle
@@ -8,7 +8,7 @@ buildscript { @@ -8,7 +8,7 @@ buildscript {
8 8
9 } 9 }
10 dependencies { 10 dependencies {
11 - classpath 'com.android.tools.build:gradle:3.5.1' 11 + classpath 'com.android.tools.build:gradle:3.3.2'
12 classpath "com.alibaba:arouter-register:1.0.2" 12 classpath "com.alibaba:arouter-register:1.0.2"
13 // NOTE: Do not place your application dependencies here; they belong 13 // NOTE: Do not place your application dependencies here; they belong
14 // in the individual module build.gradle files 14 // in the individual module build.gradle files
@@ -44,10 +44,10 @@ ext { @@ -44,10 +44,10 @@ ext {
44 versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild 44 versionCode = versionMajor * 1000 + versionMinor * 100 + versionPatch * 10 + versionBuild
45 versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}" 45 versionName = "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}"
46 46
47 - compileSdkVersion = 28 47 + compileSdkVersion = 33
48 buildToolsVersion = "28.0.3" 48 buildToolsVersion = "28.0.3"
49 minSdkVersion = 18 49 minSdkVersion = 18
50 - targetSdkVersion = 27 50 + targetSdkVersion = 33
51 51
52 //support 相关 52 //support 相关
53 supportV4 = '28.0.0' 53 supportV4 = '28.0.0'
config.gradle
@@ -21,7 +21,7 @@ ext { @@ -21,7 +21,7 @@ ext {
21 //编译方式 21 //编译方式
22 debug : false, 22 debug : false,
23 //版本号 23 //版本号
24 - version: "0.4.6", 24 + version: "0.4.8",
25 //Lib库前缀 25 //Lib库前缀
26 packeg : "com.cnlive.module", 26 packeg : "com.cnlive.module",
27 //Lib库名称 27 //Lib库名称
gradle.properties
@@ -11,10 +11,9 @@ org.gradle.jvmargs=-Xmx1536m @@ -11,10 +11,9 @@ org.gradle.jvmargs=-Xmx1536m
11 # This option should only be used with decoupled projects. More details, visit 11 # This option should only be used with decoupled projects. More details, visit
12 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 12 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13 # org.gradle.parallel=true 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 android.useAndroidX=true 17 android.useAndroidX=true
18 -# Automatically convert third-party libraries to use AndroidX  
19 android.enableJetifier=true 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 distributionBase=GRADLE_USER_HOME 2 distributionBase=GRADLE_USER_HOME
3 distributionPath=wrapper/dists 3 distributionPath=wrapper/dists
4 zipStoreBase=GRADLE_USER_HOME 4 zipStoreBase=GRADLE_USER_HOME
5 zipStorePath=wrapper/dists 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,12 +6,12 @@ static def stringValue(def value) {
6 } 6 }
7 7
8 android { 8 android {
9 - compileSdkVersion 28  
10 - 9 + compileSdkVersion 33
  10 + buildToolsVersion = '30.0.3'
11 11
12 defaultConfig { 12 defaultConfig {
13 minSdkVersion 18 13 minSdkVersion 18
14 - targetSdkVersion 28 14 + targetSdkVersion 33
15 versionCode 1 15 versionCode 1
16 versionName "1.0" 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,6 +8,8 @@ import android.graphics.Bitmap;
8 import android.graphics.BitmapFactory; 8 import android.graphics.BitmapFactory;
9 import androidx.core.content.ContextCompat; 9 import androidx.core.content.ContextCompat;
10 import androidx.appcompat.app.AppCompatActivity; 10 import androidx.appcompat.app.AppCompatActivity;
  11 +
  12 +import android.os.Build;
11 import android.os.Bundle; 13 import android.os.Bundle;
12 import android.util.Base64; 14 import android.util.Base64;
13 import android.view.View; 15 import android.view.View;
@@ -118,8 +120,15 @@ import java.io.ByteArrayOutputStream; @@ -118,8 +120,15 @@ import java.io.ByteArrayOutputStream;
118 .withActivity(this) 120 .withActivity(this)
119 .getPermissions(this 121 .getPermissions(this
120 , 100 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,9 +63,15 @@ public final class PermissionConstants {
63 permission.SEND_SMS, permission.RECEIVE_SMS, permission.READ_SMS, 63 permission.SEND_SMS, permission.RECEIVE_SMS, permission.READ_SMS,
64 permission.RECEIVE_WAP_PUSH, permission.RECEIVE_MMS, 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 @StringDef({CALENDAR, CAMERA, CONTACTS, LOCATION, MICROPHONE, PHONE, SENSORS, SMS, STORAGE,}) 76 @StringDef({CALENDAR, CAMERA, CONTACTS, LOCATION, MICROPHONE, PHONE, SENSORS, SMS, STORAGE,})
71 @Retention(RetentionPolicy.SOURCE) 77 @Retention(RetentionPolicy.SOURCE)
settings.gradle
1 include ':app', ':module_xiaojiaSoundBox' 1 include ':app', ':module_xiaojiaSoundBox'
2 -rootProject.name='XiaoJiaSpeaker'