Unter Android 13 (API‑Level 33) und höher wird eine Laufzeitberechtigung zum Senden von nicht ausgenommenen Benachrichtigungen (einschließlich Diensten im Vordergrund) aus einer App unterstützt:
POST_NOTIFICATIONS
.
Diese Änderung soll Nutzern helfen, sich auf die für sie wichtigsten Benachrichtigungen zu konzentrieren.
Wir empfehlen dringend, so schnell wie möglich Android 13 oder höher als Ziel zu verwenden, um von der zusätzlichen Kontrolle und Flexibilität dieser Funktion zu profitieren. Wenn Sie weiterhin auf Android 12L (API‑Level 32) oder niedriger ausgerichtet sind, haben Sie weniger Flexibilität beim Anfordern der Berechtigung im Kontext der Funktionen Ihrer App.
Berechtigung deklarieren
Wenn Sie die neue Berechtigung für Benachrichtigungen in Ihrer App anfordern möchten, müssen Sie Ihre App so aktualisieren, dass sie auf Android 13 ausgerichtet ist. Außerdem müssen Sie einen ähnlichen Prozess wie beim Anfordern anderer Laufzeitberechtigungen durchlaufen, wie in den folgenden Abschnitten beschrieben.
Die Berechtigung, die Sie in der Manifestdatei Ihrer App deklarieren müssen, ist im folgenden Code-Snippet zu sehen:
<manifest ...> <uses-permission android:name="android.permission.POST_NOTIFICATI>ONS&q<uot;/ appli>cation ... < ... >span>/ap<plication> /manifest
App-Funktionen hängen von der Auswahl des Nutzers im Berechtigungsdialogfeld ab
In diesem Dialogfeld haben Nutzer folgende Möglichkeiten:
- Wählen Sie Zulassen aus.
- Wählen Sie Nicht zulassen aus.
- Wischen Sie vom Dialogfeld weg, ohne eine der beiden Schaltflächen zu drücken.
In den folgenden Abschnitten wird beschrieben, wie sich Ihre App verhält, je nachdem, welche Aktion der Nutzer ausführt.
Der Nutzer wählt „Zulassen“ aus.
Wenn der Nutzer die Option Zulassen auswählt, kann Ihre App Folgendes tun:
- Benachrichtigungen senden. Alle Benachrichtigungskanäle sind zulässig.
- Benachrichtigungen im Zusammenhang mit Vordergrunddiensten posten. Diese Benachrichtigungen werden in der Benachrichtigungsleiste angezeigt.
Der Nutzer wählt „Nicht zulassen“ aus.
Wenn der Nutzer die Option Nicht zulassen auswählt, kann Ihre App keine Benachrichtigungen senden, es sei denn, sie fällt unter eine Ausnahmeregelung. Alle Benachrichtigungskanäle sind blockiert, mit Ausnahme einiger bestimmter Rollen. Das Verhalten ist ähnlich dem, das auftritt, wenn der Nutzer in den Systemeinstellungen alle Benachrichtigungen für Ihre App manuell deaktiviert.
Achtung:Wenn Ihre App auf Android 12L oder niedriger ausgerichtet ist und der Nutzer auch nur einmal auf Nicht zulassen tippt, wird er erst wieder aufgefordert, wenn einer der folgenden Fälle eintritt:
- Der Nutzer deinstalliert und installiert Ihre App neu.
- Sie aktualisieren Ihre App, sodass sie auf Android 13 oder höher ausgerichtet ist.
Nutzer wischt vom Dialogfeld weg
Wenn der Nutzer den Dialog schließt, ohne Zulassen oder Nicht zulassen auszuwählen, ändert sich der Status der Benachrichtigungsberechtigung nicht.
Auswirkungen auf neu installierte Apps
Wenn ein Nutzer Ihre App auf einem Gerät mit Android 13 oder höher installiert, sind die Benachrichtigungen Ihrer App standardmäßig deaktiviert. Ihre App muss mit dem Senden von Benachrichtigungen warten, bis Sie die neue Berechtigung angefordert haben und der Nutzer Ihrer App diese Berechtigung erteilt hat.
Der Zeitpunkt, zu dem das Berechtigungsdialogfeld angezeigt wird, hängt von der Ziel-SDK-Version Ihrer App ab:
- Wenn Ihre App auf Android 13 oder höher ausgerichtet ist, hat sie die vollständige Kontrolle darüber, wann das Berechtigungsdialogfeld angezeigt wird. Nutzen Sie diese Gelegenheit, um Nutzern zu erklären, warum die App diese Berechtigung benötigt, und sie zu ermutigen, sie zu erteilen.
- Wenn Ihre App auf Android 12L (API-Level 32) oder niedriger ausgerichtet ist, zeigt das System das Berechtigungsdialogfeld an, wenn Ihre App zum ersten Mal eine Aktivität startet, nachdem Sie einen Benachrichtigungschannel erstellt haben, oder wenn Ihre App eine Aktivität startet und dann ihren ersten Benachrichtigungschannel erstellt. Dies geschieht in der Regel beim Start der App.
Auswirkungen auf Updates für vorhandene Apps
Um Unterbrechungen im Zusammenhang mit der Benachrichtigungsberechtigung zu minimieren, erteilt das System die Berechtigung automatisch vorab für alle berechtigten Apps, wenn der Nutzer sein Gerät auf Android 13 oder höher aktualisiert. Mit anderen Worten: Diese Apps können weiterhin Benachrichtigungen an Nutzer senden und Nutzer sehen keine Aufforderung zur Laufzeitberechtigung.
Voraussetzungen für die Voraberteilung von Berechtigungen
Damit deine App für eine automatische Vorabgewährung infrage kommt, muss sie einen vorhandenen Benachrichtigungskanal haben und ihre Benachrichtigungen dürfen nicht explizit vom Nutzer auf einem Gerät mit Android 12L oder niedriger deaktiviert worden sein.
Wenn der Nutzer Benachrichtigungen für Ihre App auf einem Gerät mit Android 12L oder niedriger deaktiviert hat, bleibt diese Ablehnung bestehen, wenn das Gerät auf Android 13 oder höher aktualisiert wird.
Ausnahmen
Dieser Abschnitt enthält die Benachrichtigungen und Apps, die von der Verhaltensänderung bei Benachrichtigungsberechtigungen ausgenommen sind. Unter Android 13 (API-Level 33) oder höher werden Benachrichtigungen im Zusammenhang mit Vordergrunddiensten weiterhin im Task Manager angezeigt, wenn der Nutzer die Benachrichtigungsberechtigung verweigert, aber nicht in der Benachrichtigungsleiste.
Mediensitzungen
Benachrichtigungen zu Mediensitzungen sind von dieser Verhaltensänderung ausgenommen.
Apps, die so konfiguriert sind, dass sie Telefonanrufe selbst verwalten
Wenn Ihre App so konfiguriert ist, dass sie Anrufe selbst verwaltet, benötigen Sie die Berechtigung POST_NOTIFICATIONS
nicht, damit Ihre App Benachrichtigungen mit dem Benachrichtigungsstil Notification.CallStyle
senden kann.
Das System geht davon aus, dass Ihre App für die Selbstverwaltung von Telefonanrufen konfiguriert ist, wenn sie die folgenden Bedingungen erfüllt:
- Deklariert die Berechtigung
MANAGE_OWN_CALLS
. - Implementiert die
ConnectionService
-Schnittstelle. - Registriert sich beim Telekommunikationsanbieter des Geräts durch Aufrufen von
registerPhoneAccount()
.
App testen
Sie können prüfen, wie sich die Benachrichtigungsberechtigung auf Ihre App auswirkt, wenn sie zum ersten Mal auf einem Gerät mit Android 13 oder höher verwendet wird. Mit den folgenden Gruppen von Android Debug Bridge (ADB)-Befehlen können Sie die häufigsten Folgen von Nutzerauswahlen und Geräte-Upgrades simulieren, ohne Ihr Testgerät zurücksetzen zu müssen:
Die App wird neu auf einem Gerät mit Android 13 oder höher installiert:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Der Nutzer lässt Benachrichtigungen aktiviert, wenn die App auf einem Gerät mit Android 12L oder niedriger installiert ist, und das Gerät wird auf Android 13 oder höher aktualisiert:
adb shell pm grant PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Der Nutzer deaktiviert Benachrichtigungen manuell, wenn die App auf einem Gerät mit Android 12L oder niedriger installiert ist, und das Gerät wird dann auf Android 13 oder höher aktualisiert:
adb shell pm revoke PACKAGE_NAME android.permission.POST_NOTIFICATIONS
adb shell pm set-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-set
adb shell pm clear-permission-flags PACKAGE_NAME \ android.permission.POST_NOTIFICATIONS user-fixed
Best Practices
In diesem Abschnitt werden verschiedene Möglichkeiten beschrieben, wie Sie die neue Benachrichtigungsberechtigung in Ihrer App am effektivsten nutzen können.
SDK-Zielversion Ihrer App aktualisieren
Wenn Sie mehr Flexibilität bei der Anzeige des Berechtigungsdialogfelds wünschen, müssen Sie Ihre App so aktualisieren, dass sie auf Android 13 oder höher ausgerichtet ist.
Warten, bis die Berechtigungsanfrage für Benachrichtigungen angezeigt wird
Bevor Sie Nutzer auffordern, Berechtigungen zu erteilen, sollten Sie ihnen die Möglichkeit geben, sich mit Ihrer App vertraut zu machen.
Neue Nutzer möchten die App vielleicht erst einmal ausprobieren und die Vorteile der einzelnen Benachrichtigungsanfragen selbst erkennen. Sie können einen Berechtigungs-Prompt auslösen, wenn ein Nutzer eine Aktion ausführt. In der folgenden Liste finden Sie einige Beispiele dafür, wann es sinnvoll ist, den Benachrichtigungsberechtigungs-Prompt zu präsentieren:
- Der Nutzer tippt auf die Schaltfläche „Benachrichtigungsglocke“.
- Der Nutzer entscheidet sich, dem Social-Media-Konto einer Person zu folgen.
- Der Nutzer gibt eine Bestellung für die Lieferung von Essen auf.
Abbildung 1 zeigt einen empfohlenen Workflow zum Anfordern der Berechtigung für Benachrichtigungen. Sofern shouldShowRequestPermissionRationale()
nicht true
zurückgibt, muss Ihre App nicht den mittleren Bildschirm mit dem Titel „Benachrichtigungen erhalten!“ anzeigen.
Alternativ können Sie die Aufforderung auch erst anzeigen lassen, nachdem Nutzer die Möglichkeit hatten, sich mit Ihrer App vertraut zu machen. Sie können beispielsweise warten, bis der Nutzer Ihre App zum dritten oder vierten Mal startet.
shouldShowRequestPermissionRationale()
den Wert true
zurückgibt.
Berechtigung im Kontext anfordern
Wenn Sie in Ihrer App Berechtigungen für Benachrichtigungen anfordern, tun Sie dies im richtigen Kontext, damit explizit klar ist, wofür die Benachrichtigungen verwendet werden und warum der Nutzer sie aktivieren sollte. Eine E‑Mail-App kann beispielsweise Optionen zum Senden von Benachrichtigungen für jede neue E‑Mail oder nur für E‑Mails enthalten, bei denen der Nutzer der einzige Empfänger ist.
Nutzen Sie diese Gelegenheit, um Ihre Absichten transparent zu machen. Nutzer erteilen Ihrer App dann eher die Berechtigung für Benachrichtigungen.
Prüfen, ob Ihre App Benachrichtigungen senden kann
Bevor Ihre App eine Benachrichtigung sendet, sollten Sie prüfen, ob der Nutzer Benachrichtigungen für Ihre App aktiviert hat. Rufen Sie dazu areNotificationsEnabled()
auf.
Verantwortungsvoller Umgang mit der Berechtigung
Nachdem Sie die Genehmigung zum Senden von Benachrichtigungen erhalten haben, müssen Sie die Berechtigung verantwortungsbewusst nutzen. Nutzer können die Anzahl der täglichen Benachrichtigungen sehen, die Ihre App sendet, und die Berechtigung jederzeit widerrufen.