Bitte beachten Wenn Ihre targetSdkVersion 24 oder höher ist, müssen wir FileProvider Klasse zu geben Zugriff auf die bestimmte Datei oder einen Ordner, um sie zugänglich für andere Anwendungen nutzen.
Schritt 1: Fügen Sie ein FileProvider-Tag in AndroidManifest.xml unter dem Anwendungs-Tag hinzu.
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
Schritt 2:
dann eine provider_paths.xml Datei im XML-Ordner unter res Ordner erstellen. Der Ordner muss möglicherweise erstellt werden, wenn er nicht existiert. Der Inhalt der Datei wird unten angezeigt. Es beschreibt, dass wir den Zugriff auf den externen Speicher im Stammordner (path = ".") Mit dem Namen external_files teilen möchten.
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
Schritt 3: Der letzte Schritt ist die Codezeile in
Uri photoURI = Uri.fromFile(outputFile);
zu
Uri uri = FileProvider.getUriForFile(PdfRendererActivity.this, PdfRendererActivity.this.getPackageName() + ".provider", outputFile);
Schritt 4 (optional) unten zu ändern:
Wenn eine Absicht verwendet wird, um t zu machen er System öffnen Sie Ihre Datei, können Sie die folgende Codezeile hinzufügen müssen:
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Hope this :)
Ich habe eine verwandte Frage hier: https://stackoverflow.com/questions/45901768/how-to-share-pdf-through-whatsapp-to-an-unsaved-contact –