Android Fileprovider: IllegalArgumentException: Impossible de trouver la racine configurée qui contient
J'ai une question sur l'android FileProvider.
Je veux enregistrer un document pdf et de l'ouvrir avec un programme par défaut.
Je ne veux pas de l'enregistrer dans une mémoire externe.
Après le Ive a enregistré le pdf de la FilesDirectory/export/temp.pdf,
J'ai essayé de générer un URI en utilisant FileProvider.getUriForFile().
File path = new File(getFilesDir(), "export");
File pdf = new File(path + File.separator + "temp.pdf");
pdf.getParentFile().mkdirs();
if (!pdf.exists())
pdf.createNewFile();
Uri uri = FileProvider.getUriForFile(getApplicationContext(), "?", pdf);
Question: Que dois-je passer en tant que second paramètre "Autorité" - l'emplacement de mes Fichiers, la classe qui peut accorder l'URI-les Autorisations ou autre chose? Ce que j'ai essayé de plomb à une IllegalArgumentException ou d'une NullPointerException.
Mon FileProvider (XML):
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.myApp.myActivity"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_path"/>
</provider>
Fichier référencé:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<cache-path name="pdfTemplates" path="export/" />
</paths>
source d'informationauteur user2212120
Vous devez vous connecter pour publier un commentaire.
Ive a obtenu. Il y avait deux Problèmes différents
La première Question a été répondu par CodeDiving.
J'ai dû utiliser l'Autorité de la part du fournisseur-déclaration pour la getUriForFile appel. À l'aide d'une autre catégorie qui a causé l'exception NullPointerException.
J'ai essayé de récupérer un fichier de filesDirectory, mais dans mon file_path j'ai déclaré qu'un chemin de Répertoire de cache. Je l'ai changé pour fichiers-chemin " et cela a fonctionné. Cette erreur a provoqué la IllegalArgumentException.
Selon votre FileProvider fichier(XML), le deuxième paramètre est
com.example.myApp.myActivity
. C'est