Permissões de localização tri-state

As permissões de localização tri-state no Android 10 dão aos usuários mais controle sobre como os apps acessam a localização do dispositivo.

No Android 9 e versões anteriores, os usuários faziam escolhas persistentes ao conceder acesso à localização aos apps. Eles podiam negar ou permitir, sendo que o último dava acesso aos apps o tempo todo (em primeiro e segundo plano). As permissões de localização tri-state no Android 10 oferecem aos usuários três opções para permitir que um app acesse a localização de um dispositivo. Os usuários são solicitados a conceder ou negar o nível de permissão quando um app solicita.

Normalmente, o usuário vê as três opções apresentadas na Figura 1. No entanto, há casos de uso em que apenas duas dessas opções são necessárias e, nesses casos, apenas essas duas são mostradas.

Tela de permissões de localização tri-state

Figura 1. Tela de notificações tri-estato.

Estas são as três opções:

  • Permitir o tempo todo: o local do dispositivo é conhecido pelo app mesmo quando ele não está em uso (em execução em segundo plano). Isso equivale a permitir a permissão no Android 9 e versões anteriores.
  • Permitir apenas durante o uso do app: (somente em primeiro plano) a localização do dispositivo só fica visível para o app quando ele está em execução.
  • Negar: a localização do dispositivo nunca fica visível para o app. Isso é o mesmo que negar a permissão no Android 9 e versões anteriores.

Os usuários são solicitados a conceder permissão de acesso à localização quando os apps solicitam essa permissão.

Depois que um usuário concede a permissão de acesso Permitir apenas enquanto o app está em uso, um app pode solicitar um aumento incremental no acesso para Permitir sempre. O usuário recebe uma caixa de diálogo de solicitação (mostrada na Figura 2). Se o usuário selecionar Manter o acesso durante o uso, quando o app acessar a localização do dispositivo no próximo uso, a caixa de diálogo vai oferecer a opção Manter e não perguntar novamente.

A caixa de diálogo aparece nas seguintes condições para apps destinados ao Android 10:

  • Após pelo menos 24 horas de concessão da permissão.
  • Somente se o app estiver recebendo locais em segundo plano.
  • Quando a tela está ligada e o usuário não está usando outro app.
Permissões incrementais

Figura 2. Permissões incrementais.

Para saber mais sobre como solicitar permissões, consulte Acesso do app ao local do dispositivo. Para saber mais detalhes se o app é destinado ao Android 9 e versões anteriores, consulte Continuação da ação iniciada pelo usuário.

Impacto

O recurso de permissões de localização tri-state afeta qualquer app que precise de acesso à localização do dispositivo enquanto é executado em segundo plano e é obrigatório no Android 10.

Você pode mudar seu código, mas não pode alterar ou personalizar o comportamento relacionado à permissão no framework.

Implementação

As permissões de localização tri-state são aplicadas a apps no Android 10 independentemente do SDK de destino de um app.

Para saber como implementar os casos de uso do app (em upgrades), consulte a seção Design for device upgrade scenarios na documentação para desenvolvedores.

Para saber como ativar o acesso para diferentes casos de uso (como exigir acesso à localização em segundo plano para apps como o Google Maps ou os Serviços do Google Play), consulte estes tópicos na página Acesso do app à localização do dispositivo:

Acesso à localização no app

Os usuários podem mudar as permissões de acesso do app para Negar ou Permitir apenas enquanto estiver usando o app, se quiserem. Para a permissão de acesso à localização no app e para todos os apps próprios e de terceiros, forneça os níveis de controle do usuário indicados na tabela a seguir.

Tipo de permissão que o app precisa solicitar Opções do usuário a serem fornecidas
O app solicita apenas permissões em primeiro plano Permitir durante o uso do app
Negar
O app solicita a permissão sempre (em primeiro e segundo plano) Permitir o tempo todo
Permitir apenas durante o uso do app
Negar
Todos os apps com solicitações de acesso à localização Permitir durante o uso do app

Essas permissões se aplicam a todas as solicitações de localização. Os apps com as permissões Permitir apenas durante o uso do app não podem fazer verificações de Wi-Fi ou de celular em segundo plano.

No Android 11 ou versões anteriores, os apps com as permissões Permitir apenas enquanto estiver usando o app não podem fazer verificações de Bluetooth em segundo plano. No Android 12, os apps com as permissões Permitir apenas durante o uso do app podem receber resultados de verificação do Bluetooth definindo o valor do atributo android:usesPermissionFlags como neverForLocation. Para mais detalhes, consulte O app não determina a localização física.

Upgrades do SO

Em um upgrade do SO para o Android 10, as permissões de localização do app são convertidas da seguinte maneira:

  • Ativado passa a ser Permitir apenas durante o uso.
  • Desativado permanece desativado (Negar).
  • O acesso à localização pré-concedido se torna a permissão Permitir apenas durante o uso.