PDF上的Android黑屏

时间:2017-07-06 12:20:53

标签: android

在我的应用程序中,我已将所有权限(例如存储,联系等)发送给应用程序(给予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);
    }` 

[屏幕]     Image

1 个答案:

答案 0 :(得分:0)

实际上,访问FILE URI可能存在一些问题,因为它在提升意图时没有写入uri权限。

检查以下帖子.. Android - file provider - permission denial 希望你会有所了解。

也可以在此处发布代码以了解更多信息。