From c59e13db9b8add669637bd1bd9723876079f9235 Mon Sep 17 00:00:00 2001 From: zhouteng <qq1210514049@outlook.com> Date: Wed, 22 Apr 2020 11:45:32 +0800 Subject: [PATCH] fix provider for API < 24 --- .../java/com/zt/shareextend/ShareUtils.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/android/src/main/java/com/zt/shareextend/ShareUtils.java b/android/src/main/java/com/zt/shareextend/ShareUtils.java index 86dd213..e9fddea 100644 --- a/android/src/main/java/com/zt/shareextend/ShareUtils.java +++ b/android/src/main/java/com/zt/shareextend/ShareUtils.java @@ -18,23 +18,20 @@ class ShareUtils { String authorities = context.getPackageName() + ".shareextend.fileprovider"; - Uri uri; - - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { - uri = Uri.fromFile(file); - } else { - uri = ShareExtendProvider.getUriForPath(authorities, file.getAbsolutePath()); - } - - return uri; + return ShareExtendProvider.getUriForPath(authorities, file.getAbsolutePath()); } static void grantUriPermission(Context context, List<Uri> uriList, Intent intent) { - for (Uri uri : uriList) { - List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); - for (ResolveInfo resolveInfo : resolveInfos) { - context.grantUriPermission(resolveInfo.activityInfo.packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + // some devices will crash when calling queryIntentActivities, so add try catch temporarily. + try { + for (Uri uri : uriList) { + List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); + for (ResolveInfo resolveInfo : resolveInfos) { + context.grantUriPermission(resolveInfo.activityInfo.packageName, uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + } } + } catch (Exception e) { + } } -- 2.26.2