Browse Source

PDFTools(Android) - 1.Android 13选取文件权限问题

liuxiaolong 1 year ago
parent
commit
7e7e073e3d

+ 11 - 1
Annotations/src/main/java/com/compdfkit/annotations/PDFAnnotationSampleActivity.java

@@ -3,7 +3,9 @@ package com.compdfkit.annotations;
 import android.Manifest;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
@@ -151,7 +153,7 @@ public class PDFAnnotationSampleActivity extends CBasicActivity {
                 if (hasPermissions(STORAGE_PERMISSIONS)) {
                     selectDocument();
                 } else {
-                    EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+                    requestStoragePermissions();
                 }
             });
             menuWindow.setOnDismissListener(() -> v.setSelected(false));
@@ -159,6 +161,14 @@ public class PDFAnnotationSampleActivity extends CBasicActivity {
         });
     }
 
+    private void requestStoragePermissions(){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+            startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION));
+        }else {
+            EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+        }
+    }
+
     private void initAnnotToolbar() {
         binding.annotationToolBar.initWithPDFView(binding.pdfView);
         binding.annotationToolBar.setFragmentManager(getSupportFragmentManager());

+ 11 - 1
ContentEditor/src/main/java/com/compdfkit/contenteditor/PDFEditSampleActivity.java

@@ -16,7 +16,9 @@ import static com.compdfkit.ui.contextmenu.CPDFContextMenuShowHelper.ReplaceEdit
 import android.Manifest;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 import android.widget.Toast;
 
@@ -165,7 +167,7 @@ public class PDFEditSampleActivity extends CBasicActivity {
                 if (hasPermissions(STORAGE_PERMISSIONS)) {
                     selectDocument();
                 } else {
-                    EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+                    requestStoragePermissions();
                 }
             });
             menuWindow.setOnDismissListener(() -> v.setSelected(false));
@@ -190,6 +192,14 @@ public class PDFEditSampleActivity extends CBasicActivity {
         });
     }
 
+    private void requestStoragePermissions(){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+            startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION));
+        }else {
+            EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+        }
+    }
+
     private void initSearchBar() {
         binding.pdfSearchToolBar.initWithPDFView(binding.pdfView);
         binding.pdfSearchToolBar.onSearchQueryResults(list -> {

+ 11 - 1
DocsEditor/src/main/java/com/compdfkit/docseditor/MainActivity.java

@@ -3,7 +3,9 @@ package com.compdfkit.docseditor;
 import android.Manifest;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
@@ -134,7 +136,7 @@ public class MainActivity extends CBasicActivity {
                 if (hasPermissions(STORAGE_PERMISSIONS)) {
                     selectDocument();
                 } else {
-                    EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+                    requestStoragePermissions();
                 }
             });
             menuWindow.setOnDismissListener(() -> v.setSelected(false));
@@ -145,6 +147,14 @@ public class MainActivity extends CBasicActivity {
         });
     }
 
+    private void requestStoragePermissions(){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+            startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION));
+        }else {
+            EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+        }
+    }
+
     private void initSearchBar() {
         binding.pdfSearchToolBar.initWithPDFView(binding.pdfView);
         binding.pdfSearchToolBar.onSearchQueryResults(list -> {

+ 11 - 1
Forms/src/main/java/com/compdfkit/forms/PDFFormSampleActivity.java

@@ -3,7 +3,9 @@ package com.compdfkit.forms;
 import android.content.Intent;
 import android.graphics.Paint;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
@@ -174,7 +176,7 @@ public class PDFFormSampleActivity extends CBasicActivity {
                 if (hasPermissions(STORAGE_PERMISSIONS)) {
                     selectDocument();
                 } else {
-                    EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+                    requestStoragePermissions();
                 }
             });
             menuWindow.setOnDismissListener(() -> v.setSelected(false));
@@ -182,6 +184,14 @@ public class PDFFormSampleActivity extends CBasicActivity {
         });
     }
 
+    private void requestStoragePermissions(){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+            startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION));
+        }else {
+            EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+        }
+    }
+
     private void initFormToolbar() {
         binding.formToolBar.initWithPDFView(binding.pdfView);
         binding.formToolBar.setFragmentManager(getSupportFragmentManager());

+ 11 - 1
Viewer/src/main/java/com/compdfkit/viewer/PDFViewerSampleActivity.java

@@ -12,7 +12,9 @@ package com.compdfkit.viewer;
 import android.Manifest;
 import android.content.Intent;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.view.View;
 
 import androidx.activity.result.ActivityResultLauncher;
@@ -124,7 +126,7 @@ public class PDFViewerSampleActivity extends CBasicActivity {
                 if (hasPermissions(STORAGE_PERMISSIONS)) {
                     selectDocumentLauncher.launch(CFileUtils.getContentIntent());
                 } else {
-                    EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+                    requestStoragePermissions();
                 }
             });
             menuWindow.setOnDismissListener(() -> v.setSelected(false));
@@ -132,6 +134,14 @@ public class PDFViewerSampleActivity extends CBasicActivity {
         });
     }
 
+    private void requestStoragePermissions(){
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU){
+            startActivity(new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION));
+        }else {
+            EasyPermissions.requestPermissions(this, "request permission", REQUEST_EXTERNAL_PERMISSION, STORAGE_PERMISSIONS);
+        }
+    }
+
     private void initSearchBar() {
         binding.pdfSearchToolBar.initWithPDFView(binding.pdfView);
         binding.pdfSearchToolBar.onSearchQueryResults(list -> {