Jak opisano na stronach Prośba o dostęp do lokalizacji i Sprawdzone metody dotyczące prywatności, aplikacje powinny prosić tylko o ten typ dostępu do lokalizacji, który jest niezbędny do działania funkcji widocznej dla użytkownika, i odpowiednio informować o tym użytkowników. W większości przypadków lokalizacja jest potrzebna tylko wtedy, gdy użytkownik korzysta z aplikacji. Jeśli Twoja aplikacja wymaga lokalizacji w tle, np. podczas implementowania geofencingu, upewnij się, że jest to niezbędne do działania jej głównej funkcji, przynosi użytkownikowi wyraźne korzyści i jest realizowane w sposób dla niego oczywisty.
Lista kontrolna dotycząca dostępu do lokalizacji w tle
Użyj tej listy kontrolnej, aby zidentyfikować potencjalną logikę dostępu do lokalizacji w tle:
W pliku manifestu aplikacji sprawdź uprawnienia
ACCESS_COARSE_LOCATIONiACCESS_FINE_LOCATION. Sprawdź, czy Twoja aplikacja wymaga tych uprawnień dostępu do lokalizacji.- Jeśli Twoja aplikacja jest kierowana na Androida 10 (API na poziomie 29) lub nowszego, sprawdź też uprawnienie
ACCESS_BACKGROUND_LOCATION. Sprawdź, czy Twoja aplikacja ma funkcję, która wymaga tych uprawnień.
- Jeśli Twoja aplikacja jest kierowana na Androida 10 (API na poziomie 29) lub nowszego, sprawdź też uprawnienie
Sprawdź, czy w kodzie nie ma interfejsów API dostępu do lokalizacji, takich jak dostawca uśrednionej lokalizacji, Geofencing API lub
LocationManagerAPI, w takich konstrukcjach jak:- Usługi w tle
- Zadania
WorkManagerlubJobScheduler AlarmManageroperacje- intencje oczekujące wywoływane z widżetu aplikacji,
Jeśli Twoja aplikacja używa pakietu SDK lub biblioteki, które mają dostęp do lokalizacji, ten dostęp jest przypisywany do Twojej aplikacji. Aby dowiedzieć się, czy pakiet SDK lub biblioteka potrzebują dostępu do lokalizacji, zapoznaj się z dokumentacją biblioteki.
Ocena dostępu do lokalizacji w tle
Jeśli okaże się, że aplikacja uzyskuje dostęp do lokalizacji w tle, rozważ wykonanie tych czynności:
- Oceń, czy dostęp do lokalizacji w tle jest niezbędny do działania głównej funkcjonalności aplikacji.
Jeśli nie potrzebujesz dostępu do lokalizacji w tle, usuń go.
Jeśli Twoja aplikacja jest kierowana na Androida 10 (API na poziomie 29) lub nowszego, usuń uprawnienie
ACCESS_BACKGROUND_LOCATIONz pliku manifestu aplikacji. Jeśli usuniesz to uprawnienie, aplikacja nie będzie mogła mieć stałego dostępu do lokalizacji na urządzeniach z Androidem 10.Upewnij się, że użytkownik wie, że aplikacja uzyskuje dostęp do 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, przeprowadź refaktoryzację logiki dostępu do lokalizacji, aby prosić o dostęp do lokalizacji tylko wtedy, gdy aktywność aplikacji jest widoczna dla użytkowników.
Ograniczone aktualizacje lokalizacji w tle
Jeśli dostęp do lokalizacji w tle jest niezbędny dla Twojej aplikacji, pamiętaj, że Android oszczędza baterię urządzenia, ustawiając limity dostępu do lokalizacji w tle na urządzeniach z Androidem 8.0 (poziom interfejsu API 26) lub nowszym. W tych wersjach Androida, jeśli aplikacja działa w tle, może otrzymywać informacje o zmianie lokalizacji tylko kilka razy na godzinę. Więcej informacji znajdziesz w artykule o ograniczeniach 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 przypadki użycia lokalizacji w tle
Przykłady
Przykładowa aplikacja korzystająca z lokalizacji w tle pokazuje sprawdzone metody uzyskiwania dostępu do lokalizacji, gdy aplikacja działa w tle.