Como compartilhar arquivos

Frequentemente, um app precisa oferecer um ou mais arquivos para outro app. Por exemplo, uma galeria de imagens pode oferecer arquivos para 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 é respondendo a uma solicitação do app de recebimento.

Em todos os casos, a única forma segura de fornecer um arquivo do seu app para outro é enviar ao app de recebimento o URI de conteúdo do arquivo e conceder permissões temporárias de acesso a ele. Os URIs de conteúdo com permissões de acesso temporário a URIs 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.

Para compartilhar pequenas quantidades de texto ou dados numéricos entre apps, envie um Intent que contenha os dados. Para saber como enviar dados simples com um Intent, consulte a aula Como compartilhar dados simples.

Essa 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 fornecer 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 o URI de conteúdo 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: