ACTION_OPEN_DOCUMENTを使用してPDF文書を選択するようにユーザーに依頼します。インテントはコンテンツURIを返します。PDFを開くときにIntent.ACTION_VIEWでSecurityExceptionが発生する
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("application/pdf");
intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
intent.addCategory(Intent.CATEGORY_OPENABLE);
URIフォーマットであるコンテンツ - コンテンツ://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2FSample%20PDF.pdf
これで、ユーザーは別のアクティビティから、後で同じ文書に再びアクセスする必要があります。だから私は、次のコードを書く -
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setData(document.getLocalUri());
pdfIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
mContext.startActivity(pdfIntent);
をしかし、私は次のエラーを取得する -
java.lang.SecurityException: UID 10197 does not have permission to content://com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2FSample%20PDF.pdf [user 0]; you could obtain access using ACTION_OPEN_DOCUMENT or related APIs
私が間違って何をしているのですか?
あなたはマニフェストでパーミッションを宣言しましたか? –
この行をマニフェスト ' に追加してください。 –