[Atualização: mais detalhes] O Android 11 impede que aplicativos de câmera de terceiros apareçam em intenções de seleção de imagem/vídeo

click fraud protection

O Android 11 implementa uma mudança que impedirá que aplicativos de câmera de terceiros apareçam em ações de intenção de seleção de imagem/vídeo.

Atualização 1 (20/08/2020 às 18h15 horário do leste dos EUA): O Google atualizou sua documentação do desenvolvedor para explicar por que aplicativos de câmera de terceiros no Android 11 não conseguem responder a ações implícitas de intenção de imagem/vídeo. Role até o final para obter mais informações. O artigo publicado em 19 de agosto de 2020 está preservado abaixo.

O Android 11 está mudando a forma como os aplicativos interagem aplicativos de câmera de terceiros no seu dispositivo, o que impedirá que eles apareçam nas intenções de seleção de imagem/vídeo. Em versões mais antigas do Android, se um aplicativo quiser permitir que os usuários capturem uma imagem, ele poderá implementar a captura de fotos dentro do aplicativo (usando várias APIs de câmera do Android) ou pode enviar uma intenção que pode ser tratada por um aplicativo de câmera dedicado para capturar a imagem em vez de. Se um aplicativo decidir optar pela última opção, os usuários de versões mais antigas do Android receberão uma caixa de diálogo de desambiguação para selecionar o aplicativo de câmera de sua preferência para capturar a imagem. A caixa de diálogo geralmente mostra todos os aplicativos de câmera instalados no dispositivo do usuário, incluindo aplicativos de câmera de terceiros, desde que sejam escritos para responder a determinadas intenções. No entanto, com o Android 11, a caixa de diálogo incluirá apenas aplicativos de câmera padrão pré-instalados, a menos que os desenvolvedores visem especificamente determinados aplicativos de câmera de terceiros.

A mudança significa efetivamente que, na maioria dos casos, os usuários terão que iniciar manualmente aplicativos de câmera de terceiros quando quiserem tirar uma foto, tornando o uso de aplicativos de câmera de terceiros menos convenientes. Isso também fará com que os usuários culpem os desenvolvedores de aplicativos de câmera de terceiros quando o usuário descobrir que seu aplicativo de câmera favorito não pode mais ser iniciado a partir de outros aplicativos. O Google está implementando essa mudança no Android 11, evitando que aplicativos de câmera de terceiros respondam às seguintes ações intencionais:

  • android.media.action.VIDEO_CAPTURE
  • android.media.action.IMAGE_CAPTURE
  • android.media.action.IMAGE_CAPTURE_SECURE

Google diz que essa mudança foi implementada no Android 11 para proteger a privacidade e a segurança de seus usuários. A empresa não explica como, mas é provável que alguns aplicativos maliciosos tenham se disfarçado de aplicativos de câmera para obter acesso às fotos do usuário. No entanto, a empresa menciona uma solução alternativa para desenvolvedores que permitirá que os aplicativos ainda iniciem aplicativos de câmera de terceiros. A solução alternativa exige essencialmente que os desenvolvedores direcionem um aplicativo de terceiros específico de sua escolha ao enviar uma intenção. Por exemplo, o desenvolvedor de um aplicativo de digitalização de documentos pode enviar uma intenção explícita de lançamento Câmera Adobe Photoshop em vez de enviar uma intenção implícita de abrir o seletor de câmera. O Android 11 faz com que os desenvolvedores não consigam sequer consultar a lista de aplicativos que podem responder aos 3 mencionados acima ações intencionais, o que significa que um desenvolvedor terá que saber com antecedência quais aplicativos de câmera de terceiros deseja apoiar.

Fonte: CommonsWare, Desenvolvedores Android

Através da: Reddit

Agradecimentos ao membro sênior do XDA AndroidDeveloperLB pela dica!

Atualização 1: o Google diz que essa mudança é para manter a privacidade

O Google atualizou sua página de mudanças de comportamento do Android 11 com novas informações sobre o "ações de intenção de mídia exigem câmera padrão do sistema" seção (via A beira). A mudança, explica o Google, é “projetada para garantir que os metadados de localização EXIF ​​sejam processados ​​corretamente com base nas permissões de localização definidas no aplicativo enviando a intenção." Basicamente, o Google está preocupado com o fato de os aplicativos que ainda não receberam acesso explícito à localização estarem fazendo com que os usuários abram aplicativos de câmera que ter recebeu acesso à localização e como a foto resultante passada para o aplicativo pode conter localização EXIF metadados, o aplicativo de chamada poderá ignorar a solicitação de acesso à localização lendo os dados de localização do foto. Se um aplicativo tentar fazer isso no Android 11, ele precisará declarar ACCESS_MEDIA_LOCATION assim como ACCESS_COARSE_LOCATION ou ACCESS_FINE_LOCATION permissões para ler metadados de localização EXIF. (De importância, O Google fechou outra brecha de acesso à localização no Android 10, exigindo que os aplicativos solicitem o ACCESS_MEDIA_LOCATION permissão se um aplicativo tentar recuperar metadados EXIF ​​​​não editados de fotos.)

Embora essa mudança de comportamento afete a capacidade dos aplicativos de iniciar o aplicativo de câmera padrão definido pelo usuário devido à idade e ao uso frequente do 3 ações de intenção mencionadas acima, o Google observa que a mudança não afeta todas as ações de intenção que podem iniciar o aplicativo de câmera padrão definido pelo usuário, como como: android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA, android.provider.MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE, ou android.provider.MediaStore.INTENT_ACTION_VIDEO_CAMERA. Porém, essas intenções não têm o mesmo propósito, pois apenas iniciam o aplicativo de câmera padrão, em vez de permitir que uma imagem seja enviada de volta ao aplicativo de chamada.