Berechtigungsupdates unter Android 11

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 erfordert SYSTEM_ALERT_WINDOW automatisch die Berechtigung. Wenn verliert die App ROLE_CALL_SCREENING und die Berechtigung.

  • Jede App, die den Bildschirm über ein MediaProjection und erfordert SYSTEM_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.

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:

  1. Ändere deine READ_PHONE_STATE-Deklaration so, dass deine App die nur unter Android 10 (API-Level 29) und niedriger.
  2. 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