Trójstanowe uprawnienia do lokalizacji w systemie Android 10 dają użytkownikom większą kontrolę nad sposobem, w jaki aplikacje uzyskują dostęp do lokalizacji ich urządzeń.
W Androidzie 9 i starszych użytkownicy stale dokonywali wyborów dotyczących przyznawania aplikacjom dostępu do lokalizacji. Mogli albo Odmówić , albo Zezwolić , przy czym ta ostatnia opcja zapewniała aplikacjom ciągły dostęp (na pierwszym planie i w tle). Trójstanowe uprawnienia do lokalizacji w systemie Android 10 dają użytkownikom trzy opcje zezwalania aplikacji na dostęp do lokalizacji urządzenia. Użytkownicy są proszeni o przyznanie lub odmowę poziomu uprawnień, gdy aplikacja o to poprosi.
Użytkownik zwykle widzi trzy opcje przedstawione na rysunku 1. Istnieją jednak przypadki użycia, w których wymagane są tylko dwie z tych opcji i w takich przypadkach wyświetlane są tylko te dwie.
Oto trzy opcje:
- Zezwól przez cały czas : lokalizacja urządzenia jest znana aplikacji nawet wtedy, gdy aplikacja nie jest używana (działa w tle). Jest to równoznaczne z zezwoleniem na pozwolenie w systemie Android 9 i starszych wersjach.
- Zezwalaj tylko wtedy, gdy aplikacja jest używana : (tylko na pierwszym planie) lokalizacja urządzenia jest widoczna dla aplikacji tylko wtedy, gdy jest aktywnie uruchomiona.
- Odmów : lokalizacja urządzenia nigdy nie jest widoczna dla aplikacji. Jest to to samo, co odmowa pozwolenia w systemie Android 9 i starszych wersjach.
Użytkownicy są proszeni o udzielenie pozwolenia na dostęp do lokalizacji, gdy aplikacje o to proszą.
Gdy użytkownik udzieli Zezwalaj tylko wtedy, gdy aplikacja jest używana , aplikacja może przez cały czas żądać stopniowego zwiększania dostępu do opcji Zezwalaj . Użytkownik widzi okno dialogowe żądania (pokazane na rysunku 2 ). Jeśli użytkownik wybierze opcję Zachowaj dostęp podczas użytkowania , gdy aplikacja uzyska dostęp do lokalizacji urządzenia przy następnym użyciu, w oknie dialogowym pojawi się opcja Zachowaj dostęp i nie pytaj ponownie .
Okno dialogowe pojawia się w następujących warunkach w przypadku aplikacji przeznaczonych dla systemu Android 10:
- Po upływie co najmniej 24 godzin od udzielenia zezwolenia.
- Tylko jeśli aplikacja odbiera lokalizacje w tle.
- Gdy ekran jest włączony, a użytkownik nie korzysta z innej aplikacji.
Aby dowiedzieć się więcej o żądaniu uprawnień, zobacz Dostęp aplikacji do lokalizacji urządzenia . Szczegółowe informacje, jeśli Twoja aplikacja jest przeznaczona na Androida 9 i starsze, znajdziesz w artykule Kontynuacja działań inicjowanych przez użytkownika .
Uderzenie
Funkcja uprawnień do lokalizacji trójstanowej wpływa na każdą aplikację, która potrzebuje dostępu do lokalizacji urządzenia podczas działania w tle i jest wymagana w systemie Android 10.
Możesz zmienić swój kod, ale nie możesz zmieniać ani dostosowywać zachowania związanego z uprawnieniami w środowisku.
Realizacja
Uprawnienia dotyczące lokalizacji w trzech stanach są stosowane do aplikacji w systemie Android 10 niezależnie od docelowego pakietu SDK aplikacji.
Informacje na temat wdrażania przypadków użycia aplikacji (w przypadku uaktualnień) można znaleźć w sekcji Projektowanie scenariuszy uaktualnień urządzeń w dokumentacji dla programistów.
Aby dowiedzieć się, jak włączyć dostęp w różnych przypadkach użycia (np. wymaganie dostępu do lokalizacji w tle dla aplikacji takich jak Mapy Google lub Usługi Google Play), zapoznaj się z tymi tematami na stronie Dostęp aplikacji do lokalizacji urządzenia :
Dostęp do lokalizacji w aplikacji
Użytkownicy mogą zmienić uprawnienia dostępu aplikacji na Odmów lub Zezwalaj tylko podczas korzystania z aplikacji, jeśli tak zdecydują. W przypadku uprawnień dostępu do lokalizacji w aplikacji oraz w przypadku wszystkich aplikacji własnych i innych firm podaj poziomy kontroli użytkownika podane w poniższej tabeli.
Aplikacja typu uprawnienia musi zażądać | Opcje użytkownika do zapewnienia |
---|---|
Aplikacja żąda tylko uprawnień na pierwszym planie | Zezwalaj tylko podczas korzystania z aplikacji Zaprzeczyć |
Aplikacja zawsze żąda pozwolenia (pierwszy plan i tło) | Pozwalaj cały czas Zezwalaj tylko podczas korzystania z aplikacji Zaprzeczyć |
Wszystkie aplikacje z żądaniami dostępu do lokalizacji | Zezwalaj tylko podczas korzystania z aplikacji |
Te uprawnienia dotyczą wszystkich żądań lokalizacji. Aplikacje z uprawnieniami Zezwalaj tylko podczas korzystania z aplikacji nie zezwalają na skanowanie sieci Wi-Fi ani komórek w tle.
W systemie Android 11 lub starszym aplikacje z opcją Zezwalaj tylko podczas korzystania z uprawnień aplikacji nie zezwalają na skanowanie Bluetooth w tle. Począwszy od systemu Android 12, aplikacje z opcją Zezwalaj tylko podczas korzystania z uprawnień aplikacji mogą uzyskiwać wyniki skanowania Bluetooth, ustawiając wartość atrybutu android:usesPermissionFlags
na neverForLocation
. Aby uzyskać więcej informacji, zobacz Aplikacja nie określa lokalizacji fizycznej .
Aktualizacje systemu operacyjnego
W przypadku aktualizacji systemu operacyjnego do Androida 10 uprawnienia dotyczące lokalizacji aplikacji są tłumaczone w następujący sposób:
- Opcja Włącz zmienia się na Zezwalaj tylko podczas używania .
- Wył. pozostaje wyłączony ( Odmów ).
- Wstępnie przyznany dostęp do lokalizacji staje się zezwoleniem tylko wtedy, gdy jest używany przed przyznaniem.