Dostęp do lokalizacji w tle
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Zgodnie z opisem na stronach z prośbą o dostęp do lokalizacji i zasadami ochrony prywatności aplikacje powinny prosić tylko o dostęp do lokalizacji, który ma kluczowe znaczenie dla działania funkcji, oraz odpowiednio informować o tym użytkowników. W większości przypadków lokalizacja wymaga dostępu do lokalizacji tylko wtedy, gdy użytkownik korzysta z aplikacji. Jeśli aplikacja wymaga dostępu do lokalizacji w tle, np. przy wdrażaniu geofencingu, upewnij się, że jest ona kluczowa dla jej głównej funkcjonalności, zapewnia użytkownikowi wyraźne korzyści i działa w przejrzysty sposób.
Uwaga: Sklep Google Play zaktualizowaliśmy zasady dotyczące lokalizacji urządzenia, ograniczając dostęp do lokalizacji w tle aplikacjom, które potrzebują go do działania swojej głównej funkcji, i spełniały odpowiednie wymagania w zakresie zasad. Zastosowanie tych sprawdzonych metod nie gwarantuje, że Google Play zatwierdzi użycie lokalizacji w tle przez aplikację.
Dowiedz się więcej o zmianach zasad dotyczących lokalizacji urządzenia.
Lista kontrolna dostępu do lokalizacji w tle
Poniższa lista kontrolna pomoże Ci zidentyfikować potencjalne mechanizmy dostępu do lokalizacji w tle:
W pliku manifestu aplikacji sprawdź uprawnienie ACCESS_COARSE_LOCATION
i uprawnienie ACCESS_FINE_LOCATION
.
Sprawdź, czy Twoja aplikacja wymaga tych dostępu do lokalizacji.
- Jeśli Twoja aplikacja jest kierowana na Androida 10 (poziom interfejsu API 29) lub nowszego, sprawdź też uprawnienia
ACCESS_BACKGROUND_LOCATION
.
Sprawdź, czy aplikacja ma funkcję, która tego wymaga.
Poszukaj w kodzie interfejsów API dostępu do lokalizacji, takich jak Fused Location Provider API, Geofencing API lub LocationManager API, na przykład w tych formatach:
Jeśli Twoja aplikacja korzysta z pakietu SDK lub biblioteki, które mają dostęp do lokalizacji, dostęp ten jest przypisany do niej. Aby określić, czy pakiet SDK lub biblioteka wymaga dostępu do lokalizacji, zapoznaj się z dokumentacją biblioteki.
Ocena dostępu do lokalizacji w tle
Jeśli okaże się, że aplikacja korzysta z lokalizacji w tle, wykonaj te czynności:
- Oceń, czy dostęp do lokalizacji w tle jest kluczowy dla głównej funkcji aplikacji.
Jeśli nie potrzebujesz dostępu do lokalizacji w tle, usuń go.
Jeśli Twoja aplikacja jest kierowana na Androida 10 (poziom interfejsu API 29) lub nowszego, usuń z pliku manifestu uprawnienie ACCESS_BACKGROUND_LOCATION
. Jeśli usuniesz to uprawnienie, stały dostęp do lokalizacji nie będzie dostępny w przypadku aplikacji na urządzeniach z Androidem 10.
Upewnij się, że użytkownik wie, że aplikacja korzysta z lokalizacji w tle. Jest to szczególnie ważne w przypadkach, które nie są oczywiste dla użytkowników.
Jeśli to możliwe, refaktoryzuj logikę dostępu do lokalizacji, aby przesyłać prośby o dostęp do lokalizacji tylko wtedy, gdy aktywność w aplikacji jest widoczna dla użytkowników.
Ograniczone aktualizacje lokalizacji w tle
Jeśli aplikacja ma dostęp do lokalizacji w tle, pamiętaj, że na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszymogranicza się dostęp do lokalizacji w tle. Jeśli aplikacja działa w tle w tych wersjach Androida, może otrzymywać aktualizacje lokalizacji tylko kilka razy na godzinę. Dowiedz się więcej o limitach lokalizacji w tle.
Dodatkowe materiały
Więcej informacji o używaniu lokalizacji w tle znajdziesz w tych materiałach:
Filmy
Jak znaleźć możliwe użycie lokalizacji w tle
Próbki
Przykład pokazujący sprawdzone metody uzyskiwania dostępu do lokalizacji, gdy aplikacja działa w tle.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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."]]