O Android 14 permitirá que você restrinja quais fotos os aplicativos podem acessar, mesmo que não usem o Photo Picker

O Photo Picker era uma API opcional para apps que queriam acessar sua galeria no Android 13, mas está se tornando um tanto obrigatório no Android 14.

Um dos recursos de destaque do Android 13 é o Photo Picker, um novo componente do sistema que permite aos usuários escolher a quais fotos e vídeos dar acesso a um aplicativo. Os aplicativos não precisam solicitar nenhuma permissão para obter acesso aos itens que o usuário seleciona por meio do Photo Picker, tornando-o uma maneira de preservar a privacidade de compartilhar fotos e vídeos com aplicativos. O seletor de arquivos do sistema que existe desde o Android 4.4 oferece mais funcionalidade do que o Photo Picker, mas sua interface do usuário é datada em comparação.

O Photo Picker (e o seletor de arquivos do sistema antes dele) protege sua privacidade, permitindo que você restrinja quais fotos e vídeos um aplicativo tem acesso. Infelizmente, muitos aplicativos não oferecem suporte ao Photo Picker, embora uma versão compatível com versões anteriores esteja disponível para Android 4.4+. Os aplicativos precisam invocar especificamente o Photo Picker usando uma intenção, mas muitos aplicativos optam por não usá-lo por um motivo ou outro. Felizmente, isso pode não importar mais em

Androide 14, que está testando uma maneira de os usuários escolherem quais aplicativos de fotos e vídeos podem acessar por meio do Photo Picker, independentemente de esses aplicativos realmente usarem ou não a API.

Muitos aplicativos acessam arquivos de mídia por meio do API da loja de mídia. O sistema indexa arquivos por tipo, chamados de coleções de armazenamento de mídia, e mantém um banco de dados que os aplicativos podem consultar usando a API de armazenamento de mídia. Aplicativos que usam a API de armazenamento de mídia não precisam pedir permissão para ler ou modificar arquivos de sua propriedade, mas precisam receber permissão do usuário para acessar arquivos pertencentes a outros aplicativos.

A partir do Android 10, os aplicativos destinados à API de nível 29 ou superior precisavam receber o Permissão READ_EXTERNAL_STORAGE pelo usuário antes que ele pudesse usar a API de armazenamento de mídia para acessar arquivos propriedade de outros aplicativos. No Android 13, a permissão READ_EXTERNAL_STORAGE foi dividida em três permissões diferentes (READ_MEDIA_AUDIO, READ_MEDIA_VIDEO e READ_MEDIA_IMAGES) que cada um concede a um aplicativo de segmentação API de nível 33 a capacidade de usar a API de armazenamento de mídia para acessar arquivos de áudio, vídeo e imagem, respectivamente, pertencentes a outros aplicativos.

O Android 14 altera as permissões de acesso à mídia mais uma vez, combinando READ_MEDIA_VIDEO, READ_MEDIA_IMAGES e ACCESS_MEDIA_LOCATION em uma nova permissão chamada READ_MEDIA_VISUAL_USER_SELECTED. Essa permissão permite que um aplicativo direcionado ao nível 34 da API “leia arquivos de imagem e vídeo selecionados pelo usuário do armazenamento compartilhado”, de acordo com sua descrição. No entanto, o Android 14 pode aplicar retroativamente esse novo comportamento a aplicativos existentes direcionados ao nível 33 da API (ou seja, Android 13) e solicite READ_MEDIA_VIDEO ou READ_MEDIA_IMAGES.

Quando um aplicativo direcionado ao nível 33 da API aciona a caixa de diálogo de permissão de tempo de execução para solicitar que o usuário conceda a ele READ_MEDIA_VIDEO ou READ_MEDIA_IMAGES (ou ambos), o Android 14 pode inserir uma nova entrada no caixa de diálogo de permissão que diz "Selecionar fotos". Tocar nesta entrada iniciará uma nova versão do Photo Picker que permite ao usuário selecionar quais fotos ou vídeos deseja conceder acesso ao aplicativo para. Posteriormente, o aplicativo tem acesso apenas aos itens de mídia que o usuário selecionou especificamente, a menos que o usuário opte por expanda o acesso a itens de mídia adicionais ou conceda ao aplicativo acesso a todas as coleções de armazenamento de mídia para imagens e vídeos.

Esta entrada na caixa de diálogo de permissão não é mostrada por padrão no Android 14 DP1, pois sua visibilidade é controlada por um sinalizador de desenvolvedor que tive que alternar. Se esse recurso for lançado, será uma grande vitória para a privacidade, pois significa que os usuários sempre terão a capacidade de decidir a quais fotos ou vídeos um aplicativo deve ter acesso.

Muito poucos aplicativos usam a API Photo Picker como ela é, levando o Google a experimentar interceptando uma intenção existente que os aplicativos usam para iniciar o seletor de arquivos do sistema para que, em vez disso, eles iniciem o seletor de fotos. Embora o Photo Picker tenha algumas falhas, como não mostrar arquivos de provedores de mídia em nuvem ainda (talvez em breve com SDK de extensão versão 5!) e mostrando apenas alguns álbuns no dispositivo, é melhor do que o antigo seletor de arquivos do sistema e certamente é preferível a todos os aplicativos que tenham acesso a todas as fotos e vídeos da galeria.

Os desenvolvedores interessados ​​em implementar a API Photo Picker devem atualizar para a versão mais recente do a biblioteca de atividades do Jetpack, que lida com a chamada da versão compatível com versões anteriores fornecida por meio do Google Play Services no Android 4.4-Android 10 ou a versão fornecida pela estrutura fornecida por meio de o módulo MediaProvider Mainline.