As permissões de localização tristate no Android 10 dão 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 a aplicativos. Eles poderiam negar ou permitir , 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.
![O usuário seleciona uma dessas opções Tristate location permissions screen](https://source.android.com/static/devices/tech/config/images/tristate-image.png?authuser=7&hl=pt)
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 é equivalente a permitir permissão no Android 9 e inferior.
- Permitir apenas enquanto o aplicativo estiver em uso : (somente em primeiro plano) a localização do dispositivo só é visível para o aplicativo quando ele está em execução.
- Negar : a localização do dispositivo nunca é visível para o aplicativo. Isso é o mesmo que negar permissão no Android 9 e inferior.
Os usuários são solicitados a conceder permissão de acesso ao local quando os aplicativos solicitam a permissão.
Depois que um usuário conceder permissão de acesso Permitir somente enquanto o aplicativo estiver em uso , um aplicativo poderá solicitar um aumento incremental no acesso para 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 nestas condições para aplicativos direcionados ao Android 10:
- Após pelo menos 24 horas da concessão da permissão.
- Somente se o aplicativo estiver recebendo locais em segundo plano.
- Quando a tela está ligada e o usuário não está utilizando outro aplicativo.
![Permissões incrementais para o usuário Incremental permissions](https://source.android.com/static/devices/tech/config/images/incremental-permissions-screen.png?authuser=7&hl=pt)
Para saber mais sobre como solicitar permissões, consulte Acesso do aplicativo à 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 é necessá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 de um 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 dispositivo na documentação do desenvolvedor.
Para ver como habilitar o acesso para diferentes casos de uso (como exigir acesso à localização em segundo plano para aplicativos como Google Maps ou 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 enquanto estiverem usando o aplicativo , se quiserem. 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 aplicativo do tipo de permissão precisa solicitar | Opções do usuário para fornecer |
---|---|
O aplicativo solicita apenas permissões em primeiro plano | Permitir apenas enquanto estiver usando o aplicativo Negar |
O aplicativo sempre solicita permissão (primeiro e segundo plano) | Permitir o tempo todo Permitir apenas enquanto estiver usando o aplicativo Negar |
Todos os aplicativos com solicitações de acesso à localização | Permitir apenas enquanto estiver usando o aplicativo |
Essas permissões se aplicam a todas as solicitações de localização. Aplicativos com Permitir somente durante o uso das permissões do aplicativo não têm permissão de Wi-Fi em segundo plano ou varreduras de celular.
No Android 11 ou inferior, os aplicativos com Permitir somente ao usar as permissões do aplicativo não têm permissão para verificações de Bluetooth em segundo plano. A partir do Android 12, os aplicativos com Permitir somente ao usar as permissões 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 do SO
Em uma atualização do SO 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 .
- Desligado permanece desligado ( Negar ).
- O acesso ao local pré-concedido torna-se o Permitir somente enquanto estiver em uso pré-concedido.