在我的应用程序中,我已将所有权限(例如存储,联系等)发送给应用程序(给予marshmallow及以上版本的运行时权限),但仍会为某些手机显示黑屏。
Permission Denial: opening provider
来自ProcessRecord的android.support.v4.content.FileProvider {bd58bf1 15489:com.google.android.apps.pdfviewer / u0a213}(pid = 15489,uid = 10213)
这不是从uid 10227导出的。
//代码
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri photoURI = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".provider",
pdfFile);
Intent objIntent = new Intent(Intent.ACTION_VIEW);
List<ResolveInfo> resolvedIntentActivities = context.getPackageManager().queryIntentActivities(objIntent,
PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolvedIntentInfo : resolvedIntentActivities) {
String packageName = resolvedIntentInfo.activityInfo.packageName;
context.grantUriPermission(packageName, photoURI, Intent.FLAG_GRANT_WRITE_URI_PERMISSION |
Intent.FLAG_GRANT_READ_URI_PERMISSION);
}
objIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
objIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
objIntent.setDataAndType(photoURI, "application/pdf");
context.startActivity(objIntent);
}else{
Uri path = Uri.fromFile(pdfFile);
Intent objIntent = new Intent(Intent.ACTION_VIEW);
objIntent.setDataAndType(path, "application/pdf");
objIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(objIntent);
}`
[屏幕]
答案 0 :(得分:0)
实际上,访问FILE URI可能存在一些问题,因为它在提升意图时没有写入uri权限。
检查以下帖子.. Android - file provider - permission denial 希望你会有所了解。
也可以在此处发布代码以了解更多信息。