In Android 13 wird ein Opt-in-Modell verwendet. Das ist eine Änderung gegenüber früheren Android-Versionen, in denen ein Opt-out-Modell verwendet wurde. Unter Android 13 müssen alle Apps Nutzer um Erlaubnis bitten, bevor Benachrichtigungsaufforderungen gesendet werden. Dieses Modell hilft, Unterbrechungen durch Benachrichtigungen zu reduzieren, die Informationsüberflutung zu minimieren und Nutzern zu ermöglichen, anhand ihrer persönlichen Präferenzen festzulegen, welche Benachrichtigungen angezeigt werden. Um das Opt-in-Modell zu unterstützen, müssen OEMs Änderungen an den Benachrichtigungs- und Laufzeitberechtigungssystemen vornehmen.
Auf dieser Seite wird beschrieben, was OEMs zur Unterstützung dieser Änderung implementieren müssen und wie die Implementierung validiert wird.
Änderungen für Benachrichtigungen mit Einwilligung implementieren
Ab Android 13 müssen Apps ihre Absicht zum Senden von Benachrichtigungen erklären, indem sie die Laufzeitberechtigung android.permission.POST_NOTIFICATION
vom System anfordern, bevor sie Benachrichtigungen senden können.
Unter Android 13 und höher wird die Einstellung, die festlegt, ob eine App Benachrichtigungen an den Nutzer senden kann, im Berechtigungssystem gespeichert. Vor Android 13 wurde diese Einstellung im Benachrichtigungssystem gespeichert. Daher müssen OEMs die vorhandenen Benachrichtigungsdaten darüber, ob eine App Benachrichtigungen senden darf, vom Benachrichtigungssystem in das Laufzeitberechtigungssystem migrieren. OEMs müssen auch vorhandene APIs im Benachrichtigungssystem verwalten, die diese Daten für App-Entwickler bereitstellen.
Änderungen an den Benachrichtigungs- und Berechtigungssystemen basieren auf dem Opt-in-Modell des Nutzerbenachrichtigungsverhaltens und werden im Abschnitt Richtlinien für die Implementierung beschrieben.
Verhalten von Nutzerbenachrichtigungen bei einem Opt-in-Modell
Die folgende Tabelle veranschaulicht das Benachrichtigungsverhalten für verschiedene App-Versionen auf einem Gerät mit Android 13:
Gerät mit Android 13 | Apps, die auf Android 13 oder höher ausgerichtet sind | Apps, die auf Versionen vor Android 13 ausgerichtet sind |
---|---|---|
Neuinstallation | Benachrichtigungen werden blockiert, bis die App dazu aufgefordert wird.
Über Apps wird festgelegt, wann Berechtigungen angefordert werden. |
Benachrichtigungen werden blockiert, bis Sie vom Betriebssystem dazu aufgefordert werden.
Die Berechtigung wird bei der ersten Ausführung der App angefragt. |
Vorhandene App (Upgrade) | Benachrichtigungen sind zulässig, bis Sie von der App dazu aufgefordert werden.
Die vorübergehende Berechtigung wird erteilt, bis die App beim ersten ausschlaggebenden Lauf danach fragt. |
Benachrichtigungen sind zulässig, bis Sie vom Betriebssystem dazu aufgefordert werden.
Die vorübergehende Berechtigung wird bis zum ersten Start der App gewährt. |
Richtlinien für die Implementierung
Eine Referenzimplementierung finden Sie unter Benachrichtigungsdienst, Berechtigungsdienst und Richtliniendienst. Informationen zum Implementieren von Ausnahmen für standardmäßige Berechtigungs-Handler finden Sie unter Laufzeitberechtigungen.
Beachten Sie bei der Implementierung die folgenden Richtlinien zum Verhalten von Nutzerbenachrichtigungen für Apps, die auf SDKs für Android 13 oder niedriger ausgerichtet sind:
- Neu installierte Apps auf einem Android 13-Gerät dürfen keine Benachrichtigungen senden, ohne dass der Nutzer eine Berechtigungsanfrage genehmigt hat.
- Wenn die App auf Android 13 und höher ausgerichtet ist, müssen Benachrichtigungen blockiert werden, bis die App dazu auffordert. Die App steuert, wann und ob die Nutzereinwilligung eingeholt wird.
- Wenn die App auf Versionen niedriger als Android 13 ausgerichtet ist, müssen Benachrichtigungen blockiert werden, bis das Betriebssystem dazu auffordert. Das Betriebssystem muss die Berechtigungsanfrage beim ersten Start der App anzeigen.
Alle Apps, die vor einem Upgrade auf Android 13 auf dem Gerät vorhanden waren, oder alle Apps, die über Sicherung und Wiederherstellung wiederhergestellt wurden, müssen Benachrichtigungen senden dürfen, bis der Nutzer zum ersten Mal eine Aktivität über diese App startet.
Wenn der Nutzer die Benachrichtigungseinstellungen für diese App auf App- oder
NotificationChannel
-Ebene noch nicht angepasst hat, widerrufen Sie die vorübergehende Berechtigungsgrant für Apps, die auf das SDK der Versionen Android 13 und höher ausgerichtet sind. Apps müssen dann den Nutzer um Erlaubnis bitten, bevor sie weiterhin Benachrichtigungen senden dürfen.Wenn eine aktualisierte App, die auf Android 13 ausgerichtet ist, derzeit nicht über die vorübergehende Aktualisierungsgenehmigung die Berechtigung für Benachrichtigungen hat und der Nutzer sie mindestens einmal gestartet hat, muss die App eine Aufforderung zur Berechtigung für Benachrichtigungen anzeigen, bevor weitere Dienste im Vordergrund ausgeführt werden dürfen.
Bei Apps mit einem Ziel-SDK für ältere Versionen als Android 13 kannst du den ersten Aktivitätsstart abfangen, nachdem die App mindestens einen
NotificationChannel
erstellt hat. Dadurch wird eine Berechtigungsaufforderung angezeigt, in der der Nutzer gefragt wird, ob er Benachrichtigungen von der App erhalten möchte.Wenn ein Nutzer zuvor Benachrichtigungseinstellungen auf App- oder
NotificationChannel
-Ebene für eine App auf dem Gerät, auf dem das Upgrade durchgeführt wird, oder in einer Sicherung angepasst hat, die auf dem Gerät wiederhergestellt wird, muss die Einstellung auf App-Ebene mit dem FlagFLAG_PERMISSION_USER_SET
in das Berechtigungssystem migriert werden. Dem Nutzer darf keine weitere Aufforderung zur Berechtigung für Benachrichtigungen angezeigt werden, es sei denn, die App fordert ihn ausdrücklich dazu auf.
Die Sicherung und Wiederherstellung müssen zwischen einem Android 13-Gerät und einem Gerät aus einer früheren Betriebssystemversion abwärts- und rückwärtskompatibel sein. Sicherungsdaten, die von einem Android 13-Gerät generiert wurden, müssen auf einer früheren Betriebssystemversion wiederhergestellt werden. Sicherungsdaten einer früheren Betriebssystemversion müssen auf einem Android 13-Gerät wiederhergestellt werden.
Medienbenachrichtigungen, die mit der laufenden Medienwiedergabe verknüpft sind, müssen von der Berechtigung zum Senden von Benachrichtigungen ausgenommen sein.
Änderungen am Benachrichtigungs- und Berechtigungssystem prüfen
Führen Sie die folgenden Tests aus, um die Implementierung zu validieren:
Unit-Tests gemäß
PreferencesHelperTest
,NotificationManagerServiceTest
Jeder manuelle Test, bei dem Upgrades sowie das Sichern und Wiederherstellen getestet werden.
Alle CTS-Berechtigungs- und Benachrichtigungssysteme, die Benachrichtigungen senden Einige dieser Tests befinden sich unter cts/tests/tests/permission/, NotificationManagerTest.java und cts/tests/tests/notificationlegacy/.