Unter Android 11 können Nutzer detailliertere Einstellungen vornehmen Berechtigungen für Standort, Mikrofon und Kamera. Darüber hinaus enthält das System die Berechtigungen nicht verwendeter Apps für Android 11 oder und Apps müssen die deklarierten Berechtigungen möglicherweise aktualisieren, das Systembenachrichtigungsfenster verwenden oder Informationen zu Telefonnummern lesen.
Einmalige Berechtigungen
Ab Android 11 immer dann, wenn Ihre App eine Berechtigung anfordert die sich auf den Standort, das Mikrofon oder die Kamera beziehen, die Option Nur dieses Mal enthält. Wenn der Nutzer diese Option wird Ihrer App eine vorübergehende einmalige Berechtigung gewährt.
Weitere Informationen zur einmaligen Verarbeitung Berechtigungen
Berechtigungen für nicht verwendete Apps automatisch zurücksetzen
Wenn Ihre App auf Android 11 oder höher ausgerichtet ist und einige Zeit lang nicht verwendet wird, Monate, schützt das System Nutzerdaten, indem es die sensiblen Daten Laufzeitberechtigungen, die der Nutzer Ihrer App erteilt hat. Diese Aktion hat dieselbe als ob der Nutzer eine Berechtigung in den Systemeinstellungen gesehen und Ihre die Zugriffsebene der App auf Ablehnen festzulegen. Wenn Ihre App den Best Practices für Berechtigungen zur Laufzeit anfordern, keine Änderungen an Ihrer App vornehmen müssen. Das liegt daran, dass Sie mit Funktionen in Ihrer App interagiert, sollten Sie überprüfen, die sie benötigen.
Weitere Informationen dazu, wie das System Berechtigungen für nicht verwendete Apps.
Sichtbarkeit des Berechtigungsdialogfelds
Ab Android 11 gilt: Wenn der Nutzer bei einer bestimmten Seite auf Ablehnen tippt Berechtigung benötigt, während die App installiert wurde. auf einem Gerät befindet, wird dem Nutzer das Dialogfeld für Systemberechtigungen nicht angezeigt, wenn Ihre App fordert diese Berechtigung noch einmal an. Die Handlung des Nutzers impliziert „Nicht mehr fragen“. An früheren Versionen sehen Nutzer das Dialogfeld für Systemberechtigungen jedes Mal, wenn Ihr App hat eine Berechtigung angefordert, es sei denn, der Nutzer hat zuvor die Option „Nicht fragen“ ausgewählt wiederholen“ oder Option auswählen. Von dieser Verhaltensänderung in Android 11 wird abgeraten, wiederholte Anfragen für Berechtigungen, die Nutzer abgelehnt haben.
Um zu ermitteln, ob einer App dauerhaft Berechtigungen verweigert wurden (zur Fehlerbehebung) und Testzwecke), verwenden Sie den folgenden Befehl:
adb shell dumpsys package PACKAGE_NAME
Dabei ist PACKAGE_NAME der Name des zu prüfenden Pakets.
Die Ausgabe des Befehls enthält Abschnitte wie diese:
... 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] ...
Berechtigungen, die der Nutzer einmal verweigert hat, werden von USER_SET
gemeldet.
Berechtigungen, die durch zweimaliges Auswählen von Ablehnen dauerhaft abgelehnt wurden, werden
von USER_FIXED
gemeldet.
Während des Tests können Sie diese Flags zurücksetzen, um sicherzustellen, dass wenn das Dialogfeld für die Anfrage nicht angezeigt wird. Verwenden Sie dazu den Befehl:
adb shell pm clear-permission-flags PACKAGE_NAME PERMISSION_NAME user-set user-fixed
PERMISSION_NAME ist der Name der Berechtigung, die Sie ausführen möchten zurückgesetzt werden. Eine vollständige Liste der Berechtigungen für Android-Apps finden Sie in der permissions API Referenzseite.
Weitere Informationen zum Umgang mit Berechtigungen Ablehnung in Ihrer App.
Änderungen des Systembenachrichtigungsfensters
Unter Android 11 werden verschiedene Änderungen daran vorgenommen, wie Apps die
SYSTEM_ALERT_WINDOW
Berechtigung. Die Änderungen sollen Nutzer schützen, indem sie die Berechtigung
bewusster gewähren.
Bestimmten Apps wird auf Anfrage automatisch die Berechtigung SYSTEM_ALERT_WINDOW gewährt
Bestimmte Klassen von Apps erhalten automatisch die SYSTEM_ALERT_WINDOW
Berechtigung auf Anfrage:
Jede App mit
ROLE_CALL_SCREENING
und erfordertSYSTEM_ALERT_WINDOW
automatisch die Berechtigung. Wenn verliert die AppROLE_CALL_SCREENING
und die Berechtigung.Jede App, die den Bildschirm über ein
MediaProjection
und erfordertSYSTEM_ALERT_WINDOW
automatisch die Berechtigung es sei denn, der Nutzer hat der App die Berechtigung ausdrücklich verweigert. Wenn die App die Bildschirmaufnahme beendet, verliert er die Berechtigung. Dieser Anwendungsfall ist primär für Gaming-Apps.
Diese Apps müssen keine
ACTION_MANAGE_OVERLAY_PERMISSION
um die Berechtigung SYSTEM_ALERT_WINDOW
abzurufen können die Apps einfach
SYSTEM_ALERT_WINDOW
direkt.
Intents vom Typ MANAGE_OVERLAY_PERMISSION bringen den Nutzer immer zum Bildschirm für Systemberechtigungen
Ab Android 11
ACTION_MANAGE_OVERLAY_PERMISSION
Intents leiten Nutzer immer zum Bildschirm Settings (Einstellungen) der obersten Ebene weiter.
kann der Nutzer das
SYSTEM_ALERT_WINDOW
Berechtigungen für Apps. Alle package:
-Daten im Intent werden ignoriert.
In früheren Android-Versionen ist der Intent ACTION_MANAGE_OVERLAY_PERMISSION
ein Paket angeben, das den Nutzer zu einem App-spezifischen Bildschirm
zur Verwaltung der Berechtigung. Diese Funktion wird ab dem
Android 11 Stattdessen muss der Nutzer zuerst die gewünschte App auswählen.
die Berechtigung zu erteilen oder zu widerrufen. Diese Änderung dient dem Schutz der Nutzer
indem Sie die Berechtigung gezielter erteilen.
Telefonnummern
Android 11 ändert die telefonbezogene Berechtigung, die deine App beim Lesen von Telefonnummern verwendet.
Wenn deine App auf Android 11 oder höher ausgerichtet ist und auf die
Telefonnummer-APIs, die in der folgenden Liste aufgeführt sind, müssen Sie die
READ_PHONE_NUMBERS
anstelle der Berechtigung READ_PHONE_STATE
.
- Die Methode
getLine1Number()
in beidenTelephonyManager
Klasse und derTelecomManager
. - Die nicht unterstützte Methode
getMsisdn()
imTelephonyManager
.
Wenn in deiner App READ_PHONE_STATE
deklariert ist, um andere Methoden als die in
der vorherigen Liste können Sie weiterhin READ_PHONE_STATE
für alle
Android-Versionen Wenn Sie die Berechtigung READ_PHONE_STATE
nur für die
in der vorherigen Liste verwenden, aktualisieren Sie jedoch Ihre Manifest-Datei wie folgt:
- Ändere deine
READ_PHONE_STATE
-Deklaration so, dass deine App die nur unter Android 10 (API-Level 29) und niedriger. - Fügen Sie die Berechtigung
READ_PHONE_NUMBERS
hinzu.
Das folgende Snippet für die Manifestdeklaration veranschaulicht diesen Vorgang:
<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>
Weitere Informationen
Weitere Informationen zu den Änderungen an Berechtigungen in Android 11 findest du in der folgenden Materialien:
Videos
Entwicklung unter Berücksichtigung der neuesten Datenschutzänderungen in Android 11