Como compartilhar arquivos

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: