Acessar a localização em segundo plano
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
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
e
ACCESS_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.
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:
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.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[null,null,["Última atualização 2025-07-27 UTC."],[],[],null,["# Access location in the background\n\nAs described on the [request location\npermissions](/training/location/permissions) and [privacy best\npractices](/privacy/best-practices) pages, apps should only ask for the type of\nlocation permission that's critical to the user-facing feature, and properly\ndisclose this to users. The majority of use cases only require location when the\nuser is engaging with the app. If your app requires background location, such as\nwhen implementing geofencing, make sure that it's critical to the core\nfunctionality of the app, offers clear benefits to the user, and is done in a\nway that's obvious to them. \n**Note:** The Google Play store has updated its policy concerning device\nlocation, restricting background location access to apps that need it for\ntheir core functionality and meet related policy requirements. Adopting these\nbest practices doesn't guarantee Google Play approves your app's usage of\nlocation in the background.\n\nLearn more about the\n[policy\nchanges](https://support.google.com/googleplay/android-developer/answer/9799150) related to device location.\n\nBackground location access checklist\n------------------------------------\n\nUse the following checklist to identify potential location access logic in the\nbackground:\n\n- In your app's manifest, check for the\n [`ACCESS_COARSE_LOCATION` permission](/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION)\n and the\n [`ACCESS_FINE_LOCATION` permission](/reference/android/Manifest.permission#ACCESS_FINE_LOCATION).\n Verify that your app requires these location permissions.\n\n - If your app targets Android 10 (API level 29) or higher, also check for the [`ACCESS_BACKGROUND_LOCATION`\n permission](/training/location/receive-location-updates#request-background-location). Verify that your app has a feature that requires it.\n- Look for use of location access APIs, such as the [Fused Location Provider\n API](https://developers.google.com/location-context/fused-location-provider),\n [Geofencing API](https://developers.google.com/location-context/geofencing), or\n [LocationManager API](/reference/android/location/LocationManager), within your\n code such as in the following constructs:\n\n - [Background services](/training/run-background-service/create-service)\n - [`JobIntentService`](/reference/kotlin/androidx/core/app/JobIntentService) objects\n - [`WorkManager`](/reference/kotlin/androidx/work/WorkManager) or [`JobScheduler`](/reference/kotlin/android/app/job/JobScheduler) tasks\n - [`AlarmManager`](/reference/kotlin/android/app/AlarmManager) operations\n - Pending intents that are invoked from an [app\n widget](/guide/topics/appwidgets)\n- If your app uses an SDK or library that accesses location, this access is\n attributed to your app. To determine whether an SDK or library needs location\n access, consult the library's documentation.\n\nEvaluate background location access\n-----------------------------------\n\nIf you find that your app accesses location in the background, consider taking\nthe following actions:\n\n- Evaluate whether background location access is critical to the core functionality of the app.\n- If you don't need location access in the background, remove it.\n\n If your app targets Android 10 (API level 29) or higher, remove the\n [`ACCESS_BACKGROUND_LOCATION`\n permission](/training/location/receive-location-updates#request-background-location)\n from your app's manifest. When you remove this permission, all-the-time\n access to location isn't an option for the app on devices that run\n Android 10.\n- Make sure the user is aware that your app is accessing location in the\n background. This is especially important for cases that aren't obvious to users.\n\n- If possible, [refactor your location access\n logic](/about/versions/oreo/background-location-limits#tuning-behavior) so that\n you request location only when your app's activity is visible to users.\n\nLimited updates to background location\n--------------------------------------\n\nIf background location access is essential for your app, keep in mind that\nAndroid preserves device battery life by setting *background location\nlimits* on devices that run Android 8.0 (API level 26) and higher. On these\nversions of Android, if your app is running in the background, it can receive\nlocation updates only a few times each hour. Learn more about [background\nlocation limits](/about/versions/oreo/background-location-limits).\n\nAdditional resources\n--------------------\n\nTo learn more about background location usage, view the following materials:\n\n### Videos\n\n[How to find possible background location\nusage](https://www.youtube.com/watch?v=xTVeFJZQ28c)\n\n### Samples\n\n[Sample](https://github.com/android/platform-samples/tree/main/samples/location/src/main/java/com/example/platform/location/bglocationaccess)\nto demonstrate best practices for accessing location when app is in background."]]