Ich bitte einen Benutzer, ein PDF-Dokument mit ACTION_OPEN_DOCUMENT zu wählen. Die Absicht gibt einen Inhalts-URI zurück.SecurityException on Intent.ACTION_VIEW beim Versuch, PDF zu öffnen
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);
Der Inhalt URI im Format - Inhalt: //com.android.providers.downloads.documents/document/raw%3A%2Fstorage%2Femulated%2F0%2FDownload%2FSample%20PDF.pdf
Nun möchte ich, dass der Benutzer wieder auf dasselbe Dokument zugreift - später von einer separaten Aktivität. Also schreibe ich den folgenden Code -
Intent pdfIntent = new Intent(Intent.ACTION_VIEW);
pdfIntent.setData(document.getLocalUri());
pdfIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
mContext.startActivity(pdfIntent);
Aber ich bekomme die folgende Fehlermeldung -
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
Was mache ich falsch?
haben Sie die Berechtigung in Manifest deklariert? –
Fügen Sie diese Zeile zu Ihrem Manifest hinzu ' ' –