2017-07-06 115 views
-6

在我的應用程序,我已經給所有的權限,如存儲,聯繫等應用程序(鑑於棉花糖和以上版本的運行時權限),但仍然應用程序顯示一些手機黑屏。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.

//代碼

出口210
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

你沒有顯示任何代碼,只是一個錯誤和一個空白的屏幕。 –

+1

您似乎試圖使用'FileProvider'中的'Uri'來啓動第三方PDF查看器。鑑於此,您似乎未能將「FLAG_GRANT_READ_URI_PERMISSION」添加到「ACTION_VIEW」「Intent」,並且PDF查看器無權訪問您的內容。但是,正如戴維指出的那樣,這是猜測 - 請提供一個[mcve]來證明你的問題。 – CommonsWare

+0

添加代碼,請讓我知道代碼中的錯誤代碼 – pankaj

回答

0

嗨實際上可能有一些問題與訪問文件URI作爲它沒有寫讀URI權限,同時提高的目的。

檢查以下線程Android - file provider - permission denial 希望你會有一些想法。

此外,在這裏發佈的代碼瞭解更多。

+0

我已經給出 objIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); objIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); – pankaj