Android 11 umożliwia użytkownikom ze względu na dostęp do lokalizacji, mikrofonu i aparatu. Dodatkowo system resetuje uprawnienia nieużywanych aplikacji kierowanych na Androida 11 lub a aplikacje mogą wymagać aktualizacji zadeklarowanych uprawnień. skorzystać z okna alertu systemowego lub odczytać informacje związane z numerami telefonów.
Jednorazowe zezwolenia
Od Androida 11 za każdym razem, gdy aplikacja prosi o uprawnienia związane z lokalizacją, mikrofonem lub aparatem, widoczne dla użytkownika okno uprawnień zawiera opcję Tylko tym razem. Jeśli użytkownik wybierze tę opcję w aplikacja otrzyma tymczasowe jednorazowe uprawnienia.
Dowiedz się więcej o tym, jak system obsługuje jednorazowe .
Automatycznie resetuj uprawnienia nieużywanych aplikacji
Jeśli aplikacja jest kierowana na Androida 11 lub nowszego i nie jest używana przez kilka system chroni dane użytkowników, automatycznie resetując poufne dane, uprawnienia w czasie działania przyznane aplikacji przez użytkownika. To działanie ma taki sam efekt działania, tak jakby użytkownik wyświetlił uprawnienia w ustawieniach systemu i zmienił poziom dostępu aplikacji do opcji Odmów. Jeśli aplikacja jest zgodna ze sprawdzonymi metodami dotyczącymi: żądanie uprawnień w czasie działania, nie musisz wprowadzać żadnych zmian w aplikacji. To dlatego, że jako użytkownik współdziała z funkcjami aplikacji, należy sprawdzić, czy zostały potrzebne mu uprawnienia.
Dowiedz się więcej o tym, jak system automatycznie resetuje nieużywane uprawnienia
Widoczność okna uprawnień
Począwszy od Androida 11, jeśli użytkownik kliknie Odmów, uprawnienia więcej niż raz w trakcie instalacji aplikacji urządzenia, użytkownik nie zobaczy okna uprawnień systemowych, jeśli aplikacja ponownie prosi o uprawnienie. Działanie użytkownika oznacza „nie pytaj ponownie”. Wł. w poprzednich wersjach, użytkownicy widzieli okno uprawnień systemowych za każdym razem, aplikacja prosi o uprawnienia, chyba że użytkownik wcześniej wybrał opcję „Nie pytaj” ponownie”. pola wyboru lub opcji. Ta zmiana działania w Androidzie 11 zniechęca: wielokrotnych próśb o uprawnienia, które użytkownicy chcą odrzucić.
Sprawdzanie, czy aplikacja otrzymała trwałą odmowę uprawnień (na potrzeby debugowania i testowania), użyj tego polecenia:
adb shell dumpsys package PACKAGE_NAME
Gdzie PACKAGE_NAME to nazwa pakietu do sprawdzenia.
Wynik polecenia zawiera sekcje podobne do tych:
... runtime permissions: android.permission.POST_NOTIFICATIONS: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED] android.permission.ACCESS_FINE_LOCATION: granted=false, flags=[ USER_SET|USER_FIXED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED] android.permission.BLUETOOTH_CONNECT: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED] ...
Uprawnienia, które użytkownik odmówił raz, mają oznaczenie USER_SET
.
Uprawnienia, które zostały trwale odrzucone, klikając dwukrotnie Odmów, są nadal
zgłoszone przez: USER_FIXED
.
Podczas testów warto zresetować te flagi, by mieć pewność, że testerzy zdziwienie, gdy okno dialogowe żądania się nie wyświetla. Aby to zrobić, użyj polecenia:
adb shell pm clear-permission-flags PACKAGE_NAME PERMISSION_NAME user-set user-fixed
PERMISSION_NAME to nazwa uprawnienia, które chcesz przyznać . Aby zobaczyć pełną listę uprawnień aplikacji na Androida, odwiedź interfejs API uprawnień stronie referencyjnej.
Dowiedz się więcej o tym, jak zarządzać uprawnieniami w aplikacji.
Zmiany w oknach alertów systemowych
Android 11 wprowadza kilka zmian w sposobie przyznawania aplikacjom
SYSTEM_ALERT_WINDOW
uprawnienia. Te zmiany mają chronić użytkowników przez przyznawanie uprawnień
bardziej świadomie.
Niektóre aplikacje automatycznie otrzymują na żądanie uprawnienie SYSTEM_ALERT_WINDOW
Niektóre klasy aplikacji automatycznie otrzymują uprawnienie SYSTEM_ALERT_WINDOW
uprawnienia na żądanie:
Każda aplikacja, która zawiera
ROLE_CALL_SCREENING
a prośbaSYSTEM_ALERT_WINDOW
o to uprawnienie automatycznie otrzyma to uprawnienie. Jeśli aplikacja utraciROLE_CALL_SCREENING
, utraci uprawnienia.Każda aplikacja, która przechwytuje ekran za pomocą
MediaProjection
i prosi o pozwolenie na dostępSYSTEM_ALERT_WINDOW
automatycznie chyba że użytkownik wyraźnie odmówił przyznania aplikacji uprawnień. Gdy aplikacja przestanie przechwytywać ekran, utraci uprawnienia. Ten przypadek użycia jest głównie przeznaczonych do transmisji na żywo z gier.
Te aplikacje nie muszą wysyłać
ACTION_MANAGE_OVERLAY_PERMISSION
aby uzyskać uprawnienie SYSTEM_ALERT_WINDOW
; o które aplikacje mogą prosić
bezpośrednio SYSTEM_ALERT_WINDOW
.
Intencje MANAGE_OVERLAY_PERMISSION zawsze powodują wyświetlenie ekranu uprawnień systemowych
Począwszy od Androida 11,
ACTION_MANAGE_OVERLAY_PERMISSION
intencje zawsze kierują użytkownika na ekran Ustawienia najwyższego poziomu, gdzie
użytkownik może przyznać lub anulować
SYSTEM_ALERT_WINDOW
.
uprawnienia aplikacji. Wszystkie dane package:
w intencji są ignorowane.
We wcześniejszych wersjach Androida intencja ACTION_MANAGE_OVERLAY_PERMISSION
może określić pakiet, który przekieruje użytkownika na ekran danej aplikacji
do zarządzania uprawnieniami. Ta funkcja nie jest obsługiwana w
Android 11. Użytkownik musi najpierw wybrać aplikację,
w celu przyznania lub cofnięcia tych uprawnień. Ta zmiana ma na celu ochronę użytkowników
przez nadanie uprawnień bardziej celowo.
Numery telefonów
Android 11 zmienia uprawnienia związane z telefonem, które Twoja aplikacja który jest używany przy odczytywaniu numerów telefonów.
Jeśli Twoja aplikacja jest kierowana na Androida 11 lub nowszego i potrzebujesz dostępu do
interfejsów API numerów telefonów z poniższej listy, musisz zażądać
READ_PHONE_NUMBERS
zamiast uprawnienia READ_PHONE_STATE
.
- Metoda
getLine1Number()
w parametrachTelephonyManager
. , aTelecomManager
zajęcia. - Nieobsługiwana metoda
getMsisdn()
wTelephonyManager
. zajęcia.
Jeśli Twoja aplikacja deklaruje READ_PHONE_STATE
do metod wywoływania innych niż te w
z poprzedniej listy, możesz nadal wysyłać prośby o READ_PHONE_STATE
we wszystkich
Wersje Androida. Jeśli używasz uprawnienia READ_PHONE_STATE
tylko w przypadku aplikacji
z poprzedniej listy, jednak zaktualizuj plik manifestu w ten sposób:
- Zmień deklarację dotyczącą
READ_PHONE_STATE
, tak aby aplikacja używała atrybutu tylko na Androidzie 10 (poziom interfejsu API 29) i starszych. - Dodaj uprawnienie
READ_PHONE_NUMBERS
.
Ten fragment kodu deklaracji w pliku manifestu ilustruje ten proces:
<manifest> <!-- Grants the READ_PHONE_STATE permission only on devices that run Android 10 (API level 29) and lower. --> <uses-permission android:name="android.permission.READ_PHONE_STATE" android:maxSdkVersion="29" /> <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> </manifest>
Dodatkowe materiały
Więcej informacji o zmianach uprawnień w Androidzie 11 znajdziesz w następujące materiały:
Filmy
z uwzględnieniem najnowszych zmian w ochronie prywatności Android 11