Für Benachrichtigungen in Android 13 wird ein Opt-in-Modell verwendet, ist eine Änderung gegenüber früheren Android-Versionen, die ein Opt-out-Modell verwenden. In Unter Android 13 müssen alle Apps den Nutzer vor der Übertragung um Erlaubnis fragen dem Senden von Benachrichtigungsaufforderungen. Mit diesem Modell werden Benachrichtigungen unterbricht, minimiert die Informationsflut und hilft den Nutzenden zu steuern, Benachrichtigungen angezeigt, je nachdem, was wichtig für sie ist. Zur Unterstützung der Opt-in-Modells aktiviert, müssen OEMs Änderungen an der Benachrichtigungs- und Laufzeit Berechtigungssysteme.
Auf dieser Seite wird beschrieben, was OEMs implementieren müssen, um diese Änderung zu unterstützen, und wie um die Implementierung zu validieren.
Änderungen für Opt-in-Benachrichtigungen implementieren
Ab Android 13 müssen Apps ihre
Benachrichtigungen senden möchten, indem Sie
android.permission.POST_NOTIFICATION
Laufzeitberechtigung vom System erhalten,
bevor es Benachrichtigungen senden kann.
Unter Android 13 und höher wird die Einstellung ob eine App Benachrichtigungen an den Nutzer senden kann, im Berechtigungssystem gespeichert ist. Vor Android 13 wurde diese Einstellung im Benachrichtigungssystem. Daher müssen OEMs die vorhandenen Benachrichtigungsdaten ob eine App Benachrichtigungen senden darf. in das Laufzeitberechtigungssystem übertragen. OEMs müssen außerdem bestehende APIs verwalten. im Benachrichtigungssystem, das App-Entwicklern diese Daten anzeigt.
Änderungen an den Benachrichtigungs- und Berechtigungssystemen basieren auf den Opt-in-Modell des Nutzerbenachrichtigungsverhaltens Richtlinien für die Implementierung.
Verhalten von Nutzerbenachrichtigungen in einem Opt-in-Modell
Die folgende Tabelle zeigt das Benachrichtigungsverhalten für verschiedene Apps. 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 das Betriebssystem dazu aufgefordert wird.
Bei der ersten Ausführung der App wird eine Berechtigung angefordert. |
Vorhandene App (Upgrade) | Benachrichtigungen sind zulässig, bis Sie von der App dazu aufgefordert werden.
Die temporäre Berechtigung wird gewährt, bis die App beim ersten qualifizierenden Lauf anfordert. |
Benachrichtigungen sind zulässig, bis das Betriebssystem dazu aufgefordert wird.
Die temporäre Berechtigung wird bis zur ersten Ausführung der App gewährt. |
Richtlinien für die Implementierung
Informationen zur Implementierung finden Sie unter Benachrichtigungsdienst, Berechtigungsdienst und Policy Service zu aktualisieren. So implementieren Sie Ausnahmen: für standardmäßige Berechtigungs-Handler siehe Laufzeitberechtigungen:
Beachten Sie bei der Implementierung die folgenden Richtlinien zur Nutzerbenachrichtigung für Apps, die auf SDKs für Android 13 oder niedriger ausgerichtet sind:
- Neu auf einem Android 13-Gerät installierte Apps müssen
Es wird keine Benachrichtigung gesendet, ohne dass der Nutzer eine Berechtigungsaufforderung genehmigt.
- Wenn die App auf Android 13 und müssen Benachrichtigungen blockiert werden, bis Sie von der App als App dazu aufgefordert werden. legt fest, wann und ob Nutzerberechtigungen angefordert werden.
- Wenn die App auf Versionen ausgerichtet ist, die niedriger sind als Android 13, Benachrichtigungen müssen blockiert sein bis wird vom Betriebssystem dazu aufgefordert. Das Betriebssystem muss bei der ersten Ausführung von in der App.
Jede App, die auf dem Gerät vor einem Upgrade auf Android 13 oder eine andere App, die über ein Back-up wiederhergestellt wurde muss berechtigt sein, Benachrichtigungen zu senden, bis der Nutzer zum ersten Mal eine Aktivität aus dieser App startet.
Für Apps, die auf das SDK der Android 13-Versionen ausgerichtet sind und höher, wenn der Nutzer die Benachrichtigungseinstellungen für für diese App auf App- oder
NotificationChannel
-Ebene aufheben, Berechtigungserteilung. Apps müssen dann den Nutzer um Erlaubnis bitten, bevor sie dürfen weiterhin Benachrichtigungen senden.Wenn eine aktualisierte App, die auf Android 13 ausgerichtet ist, haben derzeit die Berechtigung zum Senden von Benachrichtigungen über das temporäre Upgrade und der Nutzer sie mindestens einmal gestartet hat, muss in der App ein Aufforderung zur Benachrichtigungsberechtigung, bevor weitere Ausführung im Vordergrund ausgeführt werden darf Dienstleistungen.
Bei Apps mit einem SDK-Zielversion ist es älter als Android 13 Abfangen beim ersten Start einer Aktivität, nachdem die App mindestens eine
NotificationChannel
erstellt hat , um eine Berechtigungsaufforderung einzublenden, in der gefragt wird, ob der Nutzer Benachrichtigungen erhalten möchte. über die App.Wenn ein Nutzer die Benachrichtigungseinstellungen am App- oder
NotificationChannel
-Level für eine App auf dem Upgradegerät oder in einem Back-up wiederhergestellt wird, muss die Einstellung auf App-Ebene migriert werden das Berechtigungssystem mit dem FlagFLAG_PERMISSION_USER_SET
. Keine weiteren Der Nutzer muss die Berechtigung zum Senden von Benachrichtigungen sehen, es sei denn, die App dies sein muss.
Back-up und Wiederherstellung müssen zwischen einem Gerät mit Android 13 und einem Gerät mit einer früheren Version Version. Auf einem Android 13 generierte Back-up-Daten Gerät muss auf eine frühere Betriebssystemversion wiederhergestellt werden und Daten von einer früheren Version Die Betriebssystemversion muss auf einem Android 13-Gerät wiederhergestellt werden.
Medienbenachrichtigungen im Zusammenhang mit der laufenden Medienwiedergabe müssen ausgenommen sein über die Berechtigung zum Senden von Benachrichtigungen.
Änderungen an den Benachrichtigungs- und Berechtigungssystemen validieren
Führen Sie die folgenden Tests aus, um die Implementierung zu validieren:
Einheitentests wie in
PreferencesHelperTest
angegeben,NotificationManagerServiceTest
Jeder manuelle Test, bei dem Upgrades sowie das Sichern und Wiederherstellen getestet werden.
Jeder CTS-Berechtigungs- und Benachrichtigungssystemtest, der Benachrichtigungen sendet. Einige dieser Tests befinden sich in cts/tests/tests/permission/. NotificationManagerTest.java und cts/tests/tests/notificationlegacy/