As permissões de localização Tristate no Android 10 oferecem aos usuários mais controle sobre como os aplicativos acessam a localização de seus dispositivos.
No Android 9 e versões anteriores, os usuários faziam escolhas persistentes ao conceder acesso de localização aos aplicativos. Eles poderiam Deny ou Allow , o último dos quais dava acesso aos aplicativos o tempo todo (primeiro e segundo plano). As permissões de localização Tristate no Android 10 oferecem aos usuários três opções para permitir que um aplicativo 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 aplicativo o solicita.
Um usuário normalmente 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.
Estas são as três opções:
- Permitir o tempo todo : a localização do dispositivo é conhecida pelo aplicativo mesmo quando o aplicativo não está em uso (executando em segundo plano). Isso equivale a permitir permissão no Android 9 e versões anteriores.
- Permitir apenas enquanto o aplicativo estiver em uso : (somente em primeiro plano) a localização do dispositivo só fica visível para o aplicativo quando ele está em execução ativa.
- Negar : a localização do dispositivo nunca fica visível para o aplicativo. Isso é o mesmo que negar 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 aplicativos solicitam a permissão.
Depois que um usuário concede permissão de acesso Permitir apenas enquanto o aplicativo estiver em uso , um aplicativo pode solicitar um aumento incremental no acesso a Permitir o tempo todo . O usuário vê uma caixa de diálogo de solicitação (mostrada na Figura 2 ). Se o usuário selecionar Manter acesso durante o uso , quando o aplicativo acessar a localização do dispositivo no próximo uso, a caixa de diálogo fornecerá a opção Manter e não perguntar novamente .
A caixa de diálogo aparece sob estas condições para aplicativos direcionados ao Android 10:
- Após pelo menos 24 horas após a concessão da permissão.
- Somente se o aplicativo estiver recebendo localizações em segundo plano.
- Quando a tela está ligada e o usuário não está utilizando outro aplicativo.
Para saber mais sobre como solicitar permissões, consulte Acesso de aplicativos à localização do dispositivo . Para obter detalhes se seu aplicativo for direcionado 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 tristate afeta qualquer aplicativo que precise de acesso à localização do dispositivo durante a execução em segundo plano e é obrigatório no Android 10.
Você pode alterar seu código, mas não pode alterar ou personalizar o comportamento relacionado à permissão na estrutura.
Implementação
As permissões de localização tristate são aplicadas a aplicativos no Android 10, independentemente do SDK de destino do aplicativo.
Para obter informações sobre como implementar os casos de uso do seu aplicativo (em atualizações), consulte a seção Design para cenários de atualização de dispositivos na documentação do desenvolvedor.
Para ver como ativar o acesso para diferentes casos de uso (como exigir acesso à localização em segundo plano para aplicativos como o Google Maps ou o Google Play Services), consulte estes tópicos na página Acesso do aplicativo à localização do dispositivo :
Acesso à localização no aplicativo
Os usuários podem alterar as permissões de acesso do seu aplicativo para Negar ou Permitir somente durante o uso do aplicativo, se assim desejarem. Para permissão de acesso à localização no aplicativo e para todos os aplicativos próprios e de terceiros, forneça os níveis de controle do usuário fornecidos na tabela a seguir.
O tipo de permissão que o aplicativo precisa solicitar | Opções do usuário para fornecer |
---|---|
O aplicativo solicita apenas permissões de primeiro plano | Permitir apenas durante o uso do aplicativo Negar |
O aplicativo sempre solicita permissão (primeiro e segundo plano) | Permitir o tempo todo Permitir apenas durante o uso do aplicativo Negar |
Todos os aplicativos com solicitações de acesso à localização | Permitir apenas durante o uso do aplicativo |
Essas permissões se aplicam a todas as solicitações de localização. Aplicativos com permissões Permitir apenas durante o uso do aplicativo não têm permissão para Wi-Fi em segundo plano ou varreduras de células.
No Android 11 ou inferior, aplicativos com permissões Permitir apenas durante o uso do aplicativo não têm permissão para verificações de Bluetooth em segundo plano. A partir do Android 12, os aplicativos com permissões Permitir somente durante o uso do aplicativo podem obter resultados de verificação de Bluetooth definindo o valor do atributo android:usesPermissionFlags
como neverForLocation
. Para obter mais detalhes, consulte O aplicativo não deriva a localização física .
Atualizações de sistema operacional
Em uma atualização do sistema operacional para o Android 10, as permissões de localização do aplicativo são traduzidas de acordo com o seguinte:
- On torna-se Permitir somente enquanto estiver em uso .
- Off permanece desligado ( Negar ).
- O acesso de localização pré-concedido torna-se a pré-concessão Permitir apenas durante o uso .