在我的應用程序,我已經給所有的權限,如存儲,聯繫等應用程序(鑑於棉花糖和以上版本的運行時權限),但仍然應用程序顯示一些手機黑屏。Android的空白屏幕上的PDF
Permission Denial: opening provider
android.support.v4.content.FileProvider從ProcessRecord {bd58bf1 15489:com.google.android.apps.pdfviewer/u0a213}(PID = 15489,UID = 10213)
不是來自UID 10227.
//代碼
出口210if (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);
}`
[畫面]
你沒有顯示任何代碼,只是一個錯誤和一個空白的屏幕。 –
您似乎試圖使用'FileProvider'中的'Uri'來啓動第三方PDF查看器。鑑於此,您似乎未能將「FLAG_GRANT_READ_URI_PERMISSION」添加到「ACTION_VIEW」「Intent」,並且PDF查看器無權訪問您的內容。但是,正如戴維指出的那樣,這是猜測 - 請提供一個[mcve]來證明你的問題。 – CommonsWare
添加代碼,請讓我知道代碼中的錯誤代碼 – pankaj