From 7de7d9d8e46dfe2006e7b62bf194c4c0d7db32e7 Mon Sep 17 00:00:00 2001 From: FongMi Date: Sun, 24 Jul 2022 00:17:42 +0800 Subject: [PATCH] Fix android r permission problem --- app/build.gradle | 4 ++-- app/src/main/AndroidManifest.xml | 3 +++ .../com/fongmi/bear/ui/activity/SettingActivity.java | 12 +++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 749a9aa8e..f87e299d8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,8 +44,8 @@ dependencies { implementation 'com.github.bassaer:materialdesigncolors:1.0.0' implementation 'com.github.bumptech.glide:glide:4.13.2' implementation 'com.google.android.material:material:1.6.1' - implementation 'com.google.android.exoplayer:exoplayer:2.18.0' - implementation 'com.google.android.exoplayer:extension-rtmp:2.18.0' + implementation 'com.google.android.exoplayer:exoplayer:2.18.1' + implementation 'com.google.android.exoplayer:extension-rtmp:2.18.1' implementation 'com.google.code.gson:gson:2.9.0' implementation 'org.greenrobot:eventbus:3.3.1' implementation 'org.jsoup:jsoup:1.14.3' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5ad59f29d..da5aef35c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,11 +1,13 @@ + permissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> loadConfig()); + private final ActivityResultLauncher launcherString = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> loadConfig()); + private final ActivityResultLauncher launcherIntent = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> loadConfig()); @Override protected ViewBinding getBinding() { @@ -73,8 +77,10 @@ public class SettingActivity extends BaseActivity { } private void checkUrl() { - if (Prefers.getUrl().startsWith("file://") && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - permissionLauncher.launch(Manifest.permission.READ_EXTERNAL_STORAGE); + if (Prefers.getUrl().startsWith("file://") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) { + launcherIntent.launch(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION)); + } else if (Prefers.getUrl().startsWith("file://") && Build.VERSION.SDK_INT < Build.VERSION_CODES.R && ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + launcherString.launch(Manifest.permission.READ_EXTERNAL_STORAGE); } else { loadConfig(); }