Conforme descrito nas páginas Solicitar permissões de localização e Práticas recomendadas de privacidade, os apps só devem pedir o tipo de permissão de localização essencial para o recurso direcionado ao usuário e precisam deixar isso bem claro. A maioria dos casos de uso só exige o local quando o usuário está interagindo com o app. Se o app exigir a localização em segundo plano, como ao implementar a fronteira geográfica virtual, verifique se isso é essencial para a funcionalidade principal dele, se oferece benefícios claros ao usuário e se é feito de forma óbvia.
Observação: a Google Play Store atualizou a política relacionada à localização do dispositivo, restringindo o acesso em segundo plano a apps que precisem dele para a funcionalidade principal e atendendo aos requisitos relacionados à política. A adoção dessas práticas recomendadas não garante que a Google Play Store aprove o uso da localização do app em segundo plano.
Saiba mais sobre as mudanças na política relacionadas à localização do dispositivo.
Lista de verificação do acesso à localização em segundo plano
Use a lista de verificação a seguir para identificar a possível lógica de acesso à localização em segundo plano:
No manifesto do seu app, verifique as permissões
ACCESS_COARSE_LOCATION
eACCESS_FINE_LOCATION
. Verifique se o app exige essas permissões de localização.- Caso o app seja voltado ao Android 10 (API de nível 29) ou versões mais recentes, verifique também a
permissão
ACCESS_BACKGROUND_LOCATION
. Verifique se o app tem um recurso que exige essa permissão.
- Caso o app seja voltado ao Android 10 (API de nível 29) ou versões mais recentes, verifique também a
permissão
Procure no código o uso de APIs de acesso à localização, como a API Fused Location Provider, a API Geofence ou a API LocationManager, como nas seguintes construções:
- Serviços em segundo plano
- Objetos
JobIntentService
- Tarefas
WorkManager
ouJobScheduler
- Operações
AlarmManager
- Intents pendentes que são invocadas usando um widget de app
Se o app usar um SDK ou uma biblioteca que acesse a localização, esse acesso será atribuído a ele. Para determinar se um SDK ou uma biblioteca precisa de acesso à localização, consulte a documentação da biblioteca.
Avaliar acesso à localização em segundo plano
Se você descobrir que seu app acessa a localização em segundo plano, faça o seguinte:
- Avalie se o acesso em segundo plano é essencial para a funcionalidade principal do app.
Se você não precisar do acesso em segundo plano, remova-o.
Caso o app seja voltado ao Android 10 (API de nível 29) ou versões mais recentes, remova a permissão
ACCESS_BACKGROUND_LOCATION
do manifesto. Quando você remove essa permissão, o acesso contínuo à localização deixa de ser uma opção para o app em dispositivos que executam o Android 10.Deixe bem claro para o usuário que o app está acessando a localização em segundo plano. Isso é importante especialmente em casos que não são óbvios para os usuários.
Se possível, refatore sua lógica de acesso à localização para solicitar a localização somente quando a atividade do app estiver visível para os usuários.
Atualizações limitadas de localização em segundo plano
Se o acesso à localização em segundo plano for essencial para o app, lembre-se de que o Android preserva a duração da bateria configurando limites de localização em segundo plano em dispositivos com o Android 8.0 (API de nível 26) ou mais recentes. Nessas versões do Android, se o app for executado em segundo plano, ele só poderá receber atualizações de localização algumas vezes por hora. Saiba mais sobre os limites da localização em segundo plano.
Outros recursos
Para saber mais sobre o uso da localização em segundo plano, consulte o seguinte material:
Vídeos
Como encontrar um possível uso da localização em segundo plano
Exemplos
Exemplo (em inglês) para demonstrar as práticas recomendadas para acessar a localização quando o app estiver em segundo plano.