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: