Laufzeitberechtigung für Benachrichtigungen

Android 13 (API-Level 33) und höher unterstützt eine Laufzeitberechtigung zum Senden von nicht ausgenommenen Benachrichtigungen (einschließlich FGS) von einer App: POST_NOTIFICATIONS. Durch diese Änderung können sich Nutzer auf die Benachrichtigungen konzentrieren, die für sie am wichtigsten sind.

Wir empfehlen dringend, die Ausrichtung so bald wie möglich auf Android 13 oder höher vorzunehmen, um von der zusätzlichen Kontrolle und Flexibilität dieser Funktion zu profitieren. Wenn Sie Ihr Ziel weiterhin auf 12L (API-Level 32) oder niedriger ausrichten, können Sie die Berechtigung im Kontext der Funktionen Ihrer App anfordern.

Erklärung der Berechtigung

Wenn Sie die neue Berechtigung zum Senden von Benachrichtigungen von Ihrer App anfordern möchten, aktualisieren Sie sie auf Android 13 und führen Sie einen ähnlichen Vorgang wie beim Anfordern anderer Laufzeitberechtigungen aus, wie in den folgenden Abschnitten beschrieben.

Die Berechtigung, die du in der Manifestdatei deiner App deklarieren musst, ist im folgenden Code-Snippet enthalten:

<manifest ...>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
    <application ...>
        ...
    </application>
</manifest>

App-Funktionen hängen von der Nutzerauswahl im Berechtigungsdialogfeld ab

In diesem Dialogfeld haben Nutzer folgende Möglichkeiten:

In den folgenden Abschnitten wird das Verhalten Ihrer App abhängig von der vom Nutzer ausgeführten Aktion beschrieben.

Der Nutzer wählt „Zulassen“ aus

Wenn der Nutzer die Option Zulassen auswählt, hat Ihre App folgende Möglichkeiten:

Der Nutzer wählt „Nicht zulassen“ aus

Wenn der Nutzer die Option Nicht zulassen auswählt, kann Ihre App nur dann Benachrichtigungen senden, wenn für sie eine Ausnahme gilt. Alle Benachrichtigungskanäle werden mit Ausnahme bestimmter Rollen blockiert. Dies ähnelt dem Verhalten, das auftritt, wenn der Nutzer alle Benachrichtigungen für deine App in den Systemeinstellungen manuell deaktiviert.

Achtung:Wenn Ihre App auf 12L oder weniger ausgerichtet ist und der Nutzer auch nur einmal auf Nicht zulassen tippt, wird er erst wieder dazu aufgefordert, wenn einer der folgenden Fälle eintritt:

  • Der Nutzer deinstalliert Ihre App und installiert sie anschließend neu.
  • Sie aktualisieren Ihre App auf Android 13 oder höher.

Der Nutzer wischt vom Dialogfeld weg

Wenn der Nutzer vom Dialogfeld wegwischt, also weder Zulassen noch Nicht zulassen auswählt, ändert sich der Status der Berechtigung zum Senden von Benachrichtigungen nicht.

Auswirkungen auf neu installierte Apps

Wenn ein Nutzer deine App auf einem Gerät mit Android 13 oder höher installiert, sind die Benachrichtigungen deiner 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 SDK-Zielversion Ihrer App ab:

  • Wenn Ihre App auf Android 13 oder höher ausgerichtet ist, kann sie vollständig steuern, wann das Berechtigungsdialogfeld angezeigt wird. Erkläre bei dieser Gelegenheit den Nutzern, warum die App diese Berechtigung benötigt, und ermutige sie, sie zu erteilen.
  • Wenn Ihre App auf 12L (API-Level 32) oder niedriger ausgerichtet ist, wird das Berechtigungsdialogfeld angezeigt, wenn Ihre App zum ersten Mal eine Aktivität startet, nachdem Sie einen Benachrichtigungskanal erstellt haben, oder wenn Ihre App eine Aktivität startet und dann ihren ersten Benachrichtigungskanal erstellt. Dies geschieht normalerweise beim Start der Anwendung.

Auswirkungen auf Updates bestehender Apps

Damit Störungen im Zusammenhang mit der Berechtigung zum Senden von Benachrichtigungen minimiert werden, gewährt das System die Berechtigung automatisch allen geeigneten Apps vorab, wenn der Nutzer sein Gerät auf Android 13 oder höher aktualisiert. Mit anderen Worten: Diese Anwendungen können weiterhin Benachrichtigungen an Nutzer senden und Nutzer sehen keine Aufforderung zur Laufzeitberechtigung.

Berechtigung zur Vorabgenehmigung von Berechtigungen

Damit Ihre App für eine automatische Vorabzuweisung berechtigt ist, muss sie einen vorhandenen Benachrichtigungskanal haben und die Benachrichtigungen dürfen auf Geräten mit 12L oder weniger vom Nutzer nicht explizit deaktiviert sein.

Wenn der Nutzer Benachrichtigungen für Ihre App auf einem Gerät mit 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 Änderung des Verhaltens bei Benachrichtigungsberechtigungen ausgenommen sind. Wenn der Nutzer unter Android 13 (API-Level 33) oder höher die Berechtigung zum Senden von Benachrichtigungen ablehnt, werden im Task-Manager weiterhin Hinweise zu Diensten im Vordergrund angezeigt. In der Benachrichtigungsleiste werden diese jedoch nicht angezeigt.

Mediensitzungen

Benachrichtigungen, die sich auf Mediensitzungen beziehen, sind von dieser Verhaltensänderung ausgenommen.

Apps, die zur Selbstverwaltung von Telefonanrufen konfiguriert sind

Wenn Ihre App so konfiguriert ist, dass sie Anrufe selbst verwaltet, benötigen Sie die Berechtigung POST_NOTIFICATIONS nicht, damit sie Benachrichtigungen im Benachrichtigungsstil Notification.CallStyle senden kann.

Das System betrachtet Ihre App als selbstverwaltet für die Selbstverwaltung von Telefonanrufen, wenn sie eine der folgenden Aktionen ausführt:

  1. Deklariert die Berechtigung MANAGE_OWN_CALLS.
  2. Implementiert die Schnittstelle ConnectionService.
  3. Registriert sich durch Aufrufen von registerPhoneAccount() beim Telekommunikationsanbieter des Geräts.

App testen

Du kannst prüfen, wie sich die Berechtigung zum Senden von Benachrichtigungen auf deine App auswirkt, wenn sie zum ersten Mal auf einem Gerät mit Android 13 oder höher verwendet wird. Mit den folgenden Android Debug Bridge-Befehlen (ADB) können Sie die häufigsten Abfolgen von Nutzerauswahlen und Geräteupgrades simulieren, ohne das Testgerät zurücksetzen zu müssen:

  • Die App wurde auf einem Gerät mit Android 13 oder höher neu 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 12L oder niedriger installiert ist. Anschließend wird das Gerät 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 einer Version von 12L oder niedriger installiert ist und dann das Gerät auf Android 13 oder höher aktualisiert wird:

    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 mehrere Möglichkeiten beschrieben, wie Sie die neue Berechtigung zum Senden von Benachrichtigungen am effektivsten in Ihrer App nutzen können.

SDK-Zielversion Ihrer App aktualisieren

Damit deine App bei der Anzeige des Berechtigungsdialogfelds flexibler ist, aktualisiere sie für Android 13 oder höher.

Warten, bis die Aufforderung für die Berechtigung zum Senden von Benachrichtigungen angezeigt wird

Bevor du Nutzer um Berechtigungen bittest, solltest du sie mit deiner App vertraut machen.

Neue Nutzer möchten sich vielleicht mit der App vertraut machen und aus erster Hand von den Vorteilen jeder einzelnen Benachrichtigungsanfrage profitieren. Sie können über eine Nutzeraktion eine Berechtigungsaufforderung auslösen. Die folgende Liste enthält einige Beispiele dafür, wann es angebracht ist, die Aufforderung zum Senden von Benachrichtigungen anzuzeigen:

  • Der Nutzer tippt auf die Schaltfläche „Benachrichtigungsglocke“.
  • Der Nutzer folgt dem Social-Media-Konto einer anderen Person.
  • Der Nutzer sendet eine Bestellung zur Lieferung von Lebensmitteln.

Abbildung 1 zeigt einen empfohlenen Workflow zum Anfordern der Benachrichtigungsberechtigung. Sofern shouldShowRequestPermissionRationale() nicht true zurückgibt, muss in deiner App nicht der mittlere Bildschirm mit dem Titeltext „Benachrichtigung erhalten!“ angezeigt werden.

Alternativ kannst du festlegen, dass eine Anfrage angezeigt wird, nachdem du Nutzern die Möglichkeit gegeben hast, sich mit deiner App vertraut zu machen. Du kannst beispielsweise warten, bis der Nutzer deine App zum dritten oder vierten Mal startet.

Nachdem sich der Nutzer angemeldet hat, wird er aufgefordert, sich über Updates zu Fahrten benachrichtigen zu lassen. Nachdem der Nutzer auf die Schaltfläche „Ich bin dabei“ geklickt hat, fordert die App die neue Berechtigung an, wodurch das Systemdialogfeld erscheint.
Abbildung 1. Ein empfohlener nutzergesteuerter Workflow zum Anfordern der Benachrichtigungsberechtigung. Der mittlere Bildschirm ist nur erforderlich, wenn shouldShowRequestPermissionRationale() den Wert true zurückgibt.

Berechtigung im Kontext anfordern

Wenn Sie Benachrichtigungsberechtigungen innerhalb Ihrer App anfordern, tun Sie dies im richtigen Kontext, damit explizit klar ist, wofür die Benachrichtigungen verwendet werden und warum der Nutzer diese aktivieren sollte. Eine E-Mail-Anwendung kann beispielsweise Optionen zum Senden von Benachrichtigungen für jede neue E-Mail oder nur für die E-Mails enthalten, bei denen der Nutzer der einzige Empfänger ist.

Nutze diese Gelegenheit, um deine Absichten transparenter zu machen, damit Nutzer deiner App mit größerer Wahrscheinlichkeit die Berechtigung zum Senden von Benachrichtigungen erteilen.

Prüfen, ob deine App Benachrichtigungen senden kann

Bevor deine App eine Benachrichtigung sendet, musst du prüfen, ob der Nutzer Benachrichtigungen für deine App aktiviert hat. Rufe dazu areNotificationsEnabled() auf.

Du musst die Berechtigung verantwortungsvoll verwenden

Nachdem Sie die Genehmigung zum Senden von Benachrichtigungen erhalten haben, denken Sie daran, die Berechtigung verantwortungsvoll zu verwenden. Nutzer sehen die Anzahl der täglichen Benachrichtigungen, die von deiner App gesendet werden, und können die Berechtigung jederzeit widerrufen.