Laufzeitberechtigung für Benachrichtigungen

Android 13 (API-Level 33) und höher unterstützt eine Laufzeitberechtigung für das Senden von nicht ausgenommenen Benachrichtigungen (einschließlich Dienste im Vordergrund) von einer App: POST_NOTIFICATIONS. Dank dieser Änderung können sich Nutzer auf die wichtigsten Benachrichtigungen konzentrieren. .

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 zu profitieren. . Wenn Sie Ihre Anzeigen weiterhin auf 12L (API-Level 32) oder niedriger ausrichten, verlieren Sie an Flexibilität, die Berechtigung im Kontext der App- Funktionalität.

Erklärung der Berechtigung

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

Die Berechtigung, die Sie benötigen, in der Manifestdatei Ihrer App deklarieren erscheint im folgenden Code-Snippet:

<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 können Nutzer folgende Aktionen verfügbar sind:

In den folgenden Abschnitten wird das Verhalten Ihrer App basierend auf der Aktion beschrieben, was Nutzende machen.

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 keine Benachrichtigungen erhalten, es sei denn, sie kommen für eine Ausnahme infrage. Alle Benachrichtigungskanäle blockiert, mit Ausnahme einiger spezieller Rollen. Dies ist vergleichbar mit dem Verhalten, das auftritt, wenn der Nutzer manuell alle Benachrichtigungen für deine App in den Systemeinstellungen deaktivieren.

Achtung: Wenn Ihre App auf Android 12L oder niedriger ausgerichtet ist und der Nutzer auch nur einmal auf Nicht zulassen tippt, wird er erst dann wieder dazu aufgefordert, wenn eines der folgenden Ereignisse 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 Nutzende vom Dialogfeld wegwischen, d. h., sie Zulassen oder Nicht zulassen: Der Status der Berechtigung zum Senden von Benachrichtigungen ist nicht möglich. ändern können.

Auswirkungen auf neu installierte Apps

Wenn ein Nutzer deine App auf einem Gerät mit Android 13 installiert oder höher, sind die Benachrichtigungen der App standardmäßig deaktiviert. Ihre App darf erst dann Benachrichtigungen senden, wenn Sie die neue Berechtigung angefordert und der Nutzer sie Ihrer App erteilt hat.

Wann das Berechtigungsdialogfeld angezeigt wird, hängt von der Ziel-SDK-Version Ihrer App ab:

  • Wenn deine App auf Android 13 oder höher ausgerichtet ist, wurde sie vollständig wann das Berechtigungsdialogfeld angezeigt wird. Nutzen Sie diese Gelegenheit, um den Nutzern zu erklären, warum die App diese Berechtigung benötigt, und sie zu bitten, sie zu gewähren.
  • 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 Benachrichtigungskanal erstellt haben, oder wenn Ihre App eine Aktivität startet und dann ihren ersten Benachrichtigungskanal erstellt. Dieses in der Regel beim Start der App.

Auswirkungen auf Updates vorhandener Apps

Um Unterbrechungen im Zusammenhang mit der Berechtigung für Benachrichtigungen zu minimieren, gewährt das System allen berechtigten Apps automatisch die Berechtigung, wenn der Nutzer sein Gerät auf Android 13 oder höher umstellt. Mit anderen Worten: Diese Apps können Benachrichtigungen an Nutzer senden und Nutzer sehen keine Aufforderung zur Laufzeitberechtigung.

Berechtigung zur Vorabgenehmigung von Berechtigungen

Damit Ihre App für eine automatische Vorabgenehmigung infrage kommt, muss sie einen Benachrichtigungskanal haben und die Benachrichtigungen dürfen nicht vom Nutzer auf einem Gerät mit Android 12L oder niedriger ausdrücklich 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 vom Änderung des Verhaltens für die Berechtigung zum Senden von Benachrichtigungen. Unter Android 13 (API-Level 33) oder höher: Lehnt der Nutzer die Berechtigung zum Senden von Benachrichtigungen ab, werden ihm weiterhin Hinweise dazu angezeigt, auf Dienste im Vordergrund Task-Manager die ich aber nicht im Benachrichtigungsleiste

Mediensitzungen

Benachrichtigungen zu Mediensitzungen sind von dieser Verhaltensänderung ausgenommen.

Apps, die für die eigenständige Verwaltung von Telefonanrufen konfiguriert sind

Falls Ihre App so konfiguriert ist, dass Anrufe selbst verwaltet werden, können Sie benötigt die Berechtigung „POST_NOTIFICATIONS“ nicht, damit deine App die die Funktion Notification.CallStyle Benachrichtigungsstil.

Das System betrachtet Ihre App selbst als zur Selbstverwaltung des Smartphones konfiguriert wenn eine der folgenden Aktionen ausgeführt wird:

  1. Deklariert die MANAGE_OWN_CALLS Berechtigung.
  2. Implementiert die ConnectionService .
  3. Registriert sich durch folgenden Aufruf beim Telekommunikationsanbieter des Geräts: registerPhoneAccount()

App testen

Du kannst prüfen, wie sich die Berechtigung zum Senden von Benachrichtigungen auf deine App auswirkt, das zum ersten Mal auf einem Gerät mit Android 13 oder höher verwendet wurde. Die Follower Android Debug Bridge (ADB)-Befehle ermöglichen Sie die häufigsten Sequenzen von Nutzerentscheidungen und Geräte-Upgrades simulieren, ohne das Testgerät zurücksetzen zu müssen:

  • Die App wurde neu auf einem Gerät installiert, das Android 13 oder höher:

    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 12 L oder weniger, dann das Gerät Upgrades auf Android 13 oder höher:

    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 12 L oder weniger, dann das Gerät Upgrades auf Android 13 oder höher:

    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 Benachrichtigung verwenden können. Berechtigung in Ihrer App am effektivsten ist.

SDK-Zielversion Ihrer App aktualisieren

Damit Ihre App flexibler ist, wann das Berechtigungsdialogfeld angezeigt wird, aktualisieren Sie Ihre App so, dass sie auf Android 13 oder höher ausgerichtet ist.

Warten, bis die Aufforderung zur Berechtigung für Benachrichtigungen angezeigt wird

Bevor Sie die Nutzer um Berechtigungen bitten, sollten sie sich damit vertraut machen. mit Ihrer App.

Neue Nutzer möchten die App vielleicht entdecken und aus erster Hand erkennen, Vorteile der einzelnen Benachrichtigungsanfragen. Sie können eine Berechtigungsaufforderung auslösen aus einer Nutzeraktion. Die folgende Liste enthält einige Beispiele dafür, sollte die Aufforderung zum Senden von Benachrichtigungen angezeigt werden:

  • Der Nutzer tippt auf eine Benachrichtigungsglocke. Schaltfläche.
  • 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 Benachrichtigung. Berechtigung. Es sei denn, shouldShowRequestPermissionRationale() true zurückgibt, muss Ihre App nicht den mittleren Bildschirm, also den Bildschirm, der hat den Titeltext „Benachrichtigung erhalten!“.

Alternativ können Sie festlegen, dass eine Anfrage angezeigt wird, nachdem Sie Nutzern die Möglichkeit gegeben haben, sich mit Ihrer App vertraut zu machen. Sie können beispielsweise warten, bis der beim dritten oder vierten Mal Ihre App gestartet wird.

Nach der Anmeldung wird dem Nutzer eine
   , um Benachrichtigungen zu aktuellen Fahrten zu erhalten. Nachdem die Nutzenden die
   wenn ich bin, fordert die App die neue Berechtigung an. Das führt dazu, dass das System
   Dialogfeld, das eingeblendet wird,
Abbildung 1: Ein empfohlener nutzergesteuerter Workflow zum Anfordern von Berechtigung zum Senden von Benachrichtigungen. Der mittlere Bildschirm wird nur benötigt, shouldShowRequestPermissionRationale() gibt true zurück.

Berechtigung im Kontext anfordern

Wenn Sie Berechtigungen für Benachrichtigungen in Ihrer App anfordern, tun Sie dies im richtigen Kontext, damit klar ist, wozu die Benachrichtigungen verwendet werden und warum der Nutzer sie aktivieren sollte. Eine E-Mail-App könnte beispielsweise Optionen enthalten, Benachrichtigungen für jede neue E-Mail senden oder nur für die E-Mails, bei denen der Nutzer nur Empfänger.

Nutzen Sie diese Gelegenheit, um Ihre Absichten transparent zu machen. wird Ihrer App wahrscheinlich die Berechtigung zum Senden von Benachrichtigungen erteilt.

Prüfen, ob deine App Benachrichtigungen senden kann

Bevor Ihre App eine Benachrichtigung sendet, prüfen Sie, ob der Nutzer die Funktion aktiviert hat Benachrichtigungen für Ihre App. Rufen Sie dazu unter areNotificationsEnabled()

Du musst die Berechtigung verantwortungsvoll verwenden

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