Si quieres ofrecer un archivo de tu app a otra de forma segura, debes configurar la app para que ofrezca
    un controlador seguro del archivo, en forma de URI de contenido. Android
    El componente FileProvider genera URI de contenido para
    de acuerdo con las especificaciones que proporciones en formato XML. En esta lección, se muestra cómo agregar
    implementación de FileProvider en tu app y cómo
    especifica los archivos que quieres ofrecer a otras apps.
  Nota: La clase FileProvider forma parte del
  Biblioteca principal de AndroidX. Información
  sobre cómo incluir esta biblioteca en tu aplicación, consulta
  Cómo declarar dependencias.
Cómo especificar el FileProvider
    Definir un FileProvider para tu app requiere una entrada en
    tu manifiesto. Esta entrada especifica la autoridad que se usará para generar URI de contenido, así como
    el nombre de un archivo en formato XML que especifique los directorios que puede compartir tu app.
    En el siguiente fragmento, se muestra cómo agregar a tu manifiesto
    <provider> que especifica la
    clase FileProvider, la autoridad y el
    Nombre de archivo 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>
    En este ejemplo, el atributo android:authorities especifica la autoridad del URI.
    que deseas usar para los URI de contenido generados por la
    FileProvider
    En el ejemplo, la autoridad es com.example.myapp.fileprovider. Para tu propio
    específica de la app, especifica una autoridad que incluya
    Valor android:package con la cadena "fileprovider" agregado a ella. Para obtener más información
    sobre el valor de autoridad, consulta el tema
    URI de contenido y la documentación de las
    atributo android:authorities.
    El elemento secundario <meta-data> de
    <provider> apunta a un archivo XML que especifica los directorios que deseas.
    compartir. El atributo android:resource es la ruta de acceso y el nombre del archivo, sin
    La extensión .xml.El contenido de este archivo se describe en la siguiente sección.
Cómo especificar directorios para compartir
    Una vez que hayas agregado el FileProvider al manifiesto de tu app, haz lo siguiente:
    debes especificar los directorios que contienen los archivos que deseas compartir. Para especificar
    de Terraform, comienza por crear el archivo filepaths.xml en el archivo res/xml/
    subdirectorio de tu proyecto. En este archivo, especifica los directorios agregando un elemento XML para
    cada directorio. El siguiente fragmento muestra un ejemplo del contenido de
    res/xml/filepaths.xml El fragmento también muestra cómo compartir un subdirectorio
    del directorio files/ en tu área de almacenamiento interno:
<paths> <files-path path="images/" name="myimages" /> </paths>
    En este ejemplo, la etiqueta <files-path> comparte directorios dentro del
    Directorio files/ del almacenamiento interno de tu app El atributo path
    comparte el subdirectorio images/ de files/.  El name
    el atributo le indica a FileProvider que agregue el segmento de ruta de acceso
    myimages a los URIs de contenido de los archivos del subdirectorio files/images/.
    El elemento <paths> puede tener varios elementos secundarios, cada uno de los cuales especifica un valor diferente
    para compartir. Además del elemento <files-path>, puedes
    usar el elemento <external-path> para compartir directorios en el almacenamiento externo
    el elemento <cache-path> para compartir directorios en tu caché interna
    . Para obtener más información sobre los elementos secundarios que especifican directorios compartidos, consulta la
    Es la documentación de referencia de FileProvider.
Nota: El archivo en formato XML es la única manera de especificar los directorios que deseas. compartir; no puedes agregar un directorio de manera programática.
    Ahora tienes una especificación completa de FileProvider
    que genera URI de contenido para archivos en el directorio files/ del directorio
    almacenamiento interno o para archivos en subdirectorios de files/. Cuando tu app genera
    un URI de contenido para un archivo, contiene la autoridad especificada en el
    Elemento <provider> (com.example.myapp.fileprovider),
    la ruta de acceso myimages/ y el nombre del archivo.
    Por ejemplo, si defines un FileProvider de acuerdo con el
    fragmentos en esta lección, y solicitarás un URI de contenido para el archivo
    default_image.jpg, FileProvider muestra el
    siguiente URI:
content://com.example.myapp.fileprovider/myimages/default_image.jpg
Para obtener información adicional relacionada, consulta:
