Como compartilhar arquivos
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Muitas vezes, os apps precisam oferecer um ou mais arquivos deles a outro app. Por exemplo, uma galeria
de imagens pode oferecer arquivos a editores de imagens, ou um app de gerenciamento de arquivos pode permitir
que os usuários copiem e colem arquivos entre áreas no armazenamento externo. Uma maneira de um app de envio compartilhar
um arquivo é responder a uma solicitação do app de destino.
Em todos os casos, a única maneira segura de oferecer um arquivo do seu app para outro é enviar ao
app de destino o URI de conteúdo do arquivo e conceder permissões temporárias de acesso a esse URI.
URIs de conteúdo com permissões de acesso temporário a URI são seguros, porque se aplicam apenas ao
app que recebe o URI e expiram automaticamente. O componente
FileProvider
do Android fornece o método
getUriForFile()
para
gerar o URI de conteúdo de um arquivo.
Se você quiser compartilhar pequenas quantidades de texto ou dados numéricos entre apps, envie um
Intent
que contenha os dados. Para aprender a enviar dados simples com um Intent
, consulte a aula de treinamento Como compartilhar dados simples.
Esta aula explica como compartilhar arquivos do seu app com segurança com outro app usando URIs de conteúdo
gerados pelo componente FileProvider
do Android e
permissões temporárias que você concede ao app de recebimento para o URI de conteúdo.
Lições
- Como configurar o compartilhamento de arquivos
-
Saiba como configurar seu app para compartilhar arquivos.
- Como compartilhar um arquivo
-
Saiba como oferecer um arquivo para outro app gerando um URI de conteúdo para o arquivo,
concedendo permissões de acesso ao URI e enviando o URI para o app.
- Como solicitar um arquivo compartilhado
-
Saiba como solicitar um arquivo compartilhado por outro app, receber o URI de conteúdo do arquivo
e usar esse URI para abrir o arquivo.
-
Como recuperar informações de arquivos
-
Saiba como um app pode usar um URI de conteúdo gerado por um
FileProvider
para recuperar informações do arquivo, incluindo
o tipo MIME e o tamanho do arquivo.
Para ver mais informações relacionadas, consulte:
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Sharing files\n\nApps often have a need to offer one or more of their files to another app. For example, an image\ngallery may want to offer files to image editors, or a file management app may want to allow\nusers to copy and paste files between areas in external storage. One way a sending app can\nshare a file is to respond to a request from the receiving app.\n\n\nIn all cases, the only secure way to offer a file from your app to another app is to send the\nreceiving app the file's content URI and grant temporary access permissions to that URI.\nContent URIs with temporary URI access permissions are secure because they apply only to the\napp that receives the URI, and they expire automatically. The Android\n[FileProvider](/reference/androidx/core/content/FileProvider) component provides the method\n[getUriForFile()](/reference/androidx/core/content/FileProvider#getUriForFile(android.content.Context, java.lang.String, java.io.File)) for\ngenerating a file's content URI.\n\n\nIf you want to share small amounts of text or numeric data between apps, you should send an\n[Intent](/reference/android/content/Intent) that contains the data. To learn how to send simple data with an\n[Intent](/reference/android/content/Intent), see the training class\n[Sharing simple data](/training/sharing).\n\n\nThis class explains how to securely share files from your app to another app using content URIs\ngenerated by the Android [FileProvider](/reference/androidx/core/content/FileProvider) component and\ntemporary permissions that you grant to the receiving app for the content URI.\n\nLessons\n-------\n\n**[Setting up file sharing](/training/secure-file-sharing/setup-sharing)**\n:\n Learn how to set up your app to share files.\n\n**[Sharing a file](/training/secure-file-sharing/share-file)**\n:\n Learn how to offer a file to another app by generating a content URI for the file,\n granting access permissions to the URI, and sending the URI to the app.\n\n**[Requesting a shared file](/training/secure-file-sharing/request-file)**\n:\n Learn how to request a file shared by another app, receive the content URI for the file,\n and use the content URI to open the file.\n\n\n**[Retrieving file information](/training/secure-file-sharing/retrieve-info)**\n:\n Learn how an app can use a content URI generated by a\n [FileProvider](/reference/androidx/core/content/FileProvider) to retrieve file information including\n MIME type and file size.\n\nFor additional related information, refer to:\n\n- [Storage Options](/guide/topics/data/data-storage)\n- [Saving Files](/training/basics/data-storage/files)\n- [Sharing Simple Data](/training/sharing)"]]