Conforme descrito nas páginas Solicitar permissões de localização e Práticas recomendadas de privacidade, os apps só podem pedir o tipo de permissão de localização que é essencial para o recurso voltado 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.
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 app, verifique as permissões
ACCESS_COARSE_LOCATIONeACCESS_FINE_LOCATION. Verifique se o app exige essas permissões de localização.- Se o app for destinado ao Android 10 (nível 29 da API) 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.
- Se o app for destinado ao Android 10 (nível 29 da API) ou versões mais recentes, verifique também
a permissão
Procure o uso de APIs de acesso à localização, como a API de provedor de localização combinada, a API de fronteira geográfica virtual ou a API
LocationManager, no seu código, como nas seguintes construções:- Serviços em segundo plano
- Tarefas do
WorkManagerou doJobScheduler - Operações
AlarmManager - Intents pendentes invocadas de 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.
Se o app for destinado ao Android 10 (nível 29 da API) ou versões mais recentes, remova a permissão
ACCESS_BACKGROUND_LOCATIONdo manifesto do app. Quando você remove essa permissão, o acesso contínuo à localização não é uma opção para o app em dispositivos com 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 que você solicite 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. Para mais informações, consulte Limites de localização em segundo plano.
Outros recursos
Para saber mais sobre o uso da localização em segundo plano, consulte os seguintes materiais:
Vídeos
Como encontrar um possível uso da localização em segundo plano
Amostras
O exemplo de localização em segundo plano (link em inglês) demonstra as práticas recomendadas para acessar a localização quando o app está em segundo plano.