Pour proposer de manière sécurisée un fichier de votre appli à une autre appli, vous devez configurer votre appli de sorte qu'elle
    un handle sécurisé vers le fichier, sous la forme d'un URI de contenu. Android
    Le composant FileProvider génère des URI de contenu pour
    en fonction des spécifications que vous fournissez en XML. Cette leçon vous explique comment ajouter
    l'implémentation de FileProvider dans votre application, et comment
    spécifiez les fichiers que vous souhaitez proposer à d'autres applications.
  Remarque:La classe FileProvider fait partie du
  Bibliothèque AndroidX Core. Pour plus d'informations
  sur l'inclusion de cette bibliothèque dans votre application, consultez
  Déclarer des dépendances.
Spécifier le FileProvider
    La définition d'un FileProvider pour votre application nécessite une entrée dans
    votre fichier manifeste. Cette entrée spécifie l'autorité à utiliser pour générer des URI de contenu, ainsi que
    le nom d'un fichier XML spécifiant les répertoires que votre application peut partager.
    L'extrait de code suivant vous montre comment ajouter à votre fichier manifeste
    L'élément <provider> spécifiant la
    FileProvider, l'autorité et le
    Nom du fichier XML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application ...> <provider android:name="androidx.core.content.FileProvider" android:authorities="com.example.myapp.fileprovider" android:grantUriPermissions="true" android:exported="false"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths" /> </provider> ... </application> </manifest>
    Dans cet exemple, l'attribut android:authorities spécifie l'autorité d'URI
    que vous souhaitez utiliser pour les URI de contenu générés par
    FileProvider
    Dans cet exemple, l'autorité est com.example.myapp.fileprovider. Pour le vôtre
    de l'application, spécifiez une autorité composée de l'autorité
    Valeur android:package avec la chaîne "fileprovider" qui lui est ajoutée. Pour en savoir plus
    sur la valeur "authority", consultez la rubrique
    URI de contenu et la documentation relative aux
    android:authorities.
    L'élément enfant <meta-data> de
    <provider> pointe vers un fichier XML qui spécifie les répertoires que vous souhaitez
    partager. L'attribut android:resource correspond au chemin d'accès et au nom du fichier, sans
    L'extension .xml.Le contenu de ce fichier est décrit dans la section suivante.
Spécifier des répertoires partageables
    Une fois que vous avez ajouté FileProvider au fichier manifeste de votre application,
    vous devez spécifier les répertoires 
qui contiennent les fichiers que vous souhaitez partager. Pour spécifier le paramètre
    commencez par créer le fichier filepaths.xml dans le répertoire res/xml/.
    sous-répertoire de votre projet. Dans ce fichier, spécifiez les répertoires en ajoutant un élément XML pour
    chaque répertoire. L'extrait de code suivant montre un exemple du contenu de
    res/xml/filepaths.xml L'extrait montre également comment partager un sous-répertoire
    du répertoire files/ dans votre espace de stockage interne:
<paths> <files-path path="images/" name="myimages" /> </paths>
    Dans cet exemple, la balise <files-path> partage des répertoires dans le
    files/ de la mémoire de stockage interne de votre application. Attribut path
    partage le sous-répertoire images/ de files/.  name
    indique à FileProvider d'ajouter le segment de chemin d'accès
    myimages vers les URI de contenu des fichiers du sous-répertoire files/images/.
    L'élément <paths> peut avoir plusieurs enfants, chacun spécifiant un élément différent
    à partager. En plus de l'élément <files-path>, vous pouvez
    Utiliser l'élément <external-path> pour partager des répertoires dans un espace de stockage externe
    L'élément <cache-path> pour partager les répertoires de votre cache interne
    . Pour en savoir plus sur les éléments enfants spécifiant les répertoires partagés, consultez le
    Documentation de référence sur FileProvider.
Remarque:Le fichier XML est le seul moyen de spécifier les répertoires partager ; vous ne pouvez pas ajouter un répertoire par programmation.
    Vous disposez désormais d'une spécification complète pour FileProvider.
    qui génère les URI de contenu des fichiers du répertoire files/ de l'application
    la mémoire de stockage interne ou pour les fichiers des sous-répertoires de files/. Lorsque votre application génère
    un URI de contenu pour un fichier, il contient l'autorité spécifiée dans le
    élément <provider> (com.example.myapp.fileprovider),
    le chemin d'accès myimages/ et le nom du fichier.
    Par exemple, si vous définissez un FileProvider conformément au
    dans cette leçon, et vous demandez un URI de contenu pour le fichier
    default_image.jpg, FileProvider renvoie
    URI suivant:
content://com.example.myapp.fileprovider/myimages/default_image.jpg
Pour en savoir plus, consultez les ressources suivantes: