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. So 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 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 du die neue Berechtigung zum Senden von Benachrichtigungen von deiner App anfordern möchtest, aktualisiere deine App auf auf Android 13 ausgerichtet sind und einen ähnlichen Prozess ausführen wie Anfordern anderer Laufzeitberechtigungen, wie die in den folgenden Abschnitten beschrieben werden.

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 senden, es sei denn, sie erfüllt die Voraussetzungen für eine Ausnahme. Alle Benachrichtigungskanäle sind blockiert, mit Ausnahme einiger bestimmter Rollen. Das entspricht dem Verhalten, das auftritt, wenn der Nutzer alle Benachrichtigungen für Ihre App in den Systemeinstellungen manuell deaktiviert.

Achtung:Wenn Ihre App auf 12 L oder weniger ausgerichtet ist und der Nutzer nur einmal auf Nicht zulassen tippt, wird er nicht dazu aufgefordert, erneut, bis 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.

Nutzer wischt das Dialogfeld weg

Wenn der Nutzer das Dialogfeld wischt, d. h. weder Zulassen noch Nicht zulassen auswählt, ändert sich der Status der Berechtigung für Benachrichtigungen nicht.

Auswirkungen auf neu installierte Apps

Wenn ein Nutzer Ihre App auf einem Gerät mit Android 13 oder höher installiert, werden die Benachrichtigungen Ihrer 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.

Die Zeit, zu der das Berechtigungsdialogfeld angezeigt wird, hängt vom Ziel Ihrer App ab SDK-Version:

  • 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. Das ist in der Regel beim Starten der App der Fall.

Auswirkungen auf Updates vorhandener Apps

Um Störungen im Zusammenhang mit der Berechtigung zum Senden von Benachrichtigungen zu minimieren, erteilt das System die Berechtigung automatisch allen geeignete Apps, wenn der Nutzer ein Upgrade auf seinem Gerät auf Android 13 oder höher. Mit anderen Worten: Diese Apps können Benachrichtigungen an Nutzer senden und Nutzer sehen keine Aufforderung zur Laufzeitberechtigung.

Voraussetzungen für die Vorabgenehmigung einer Berechtigung

Damit Ihre App für eine automatische Vorabgenehmigung berechtigt wird, muss sie eine vorhandenen Benachrichtigungskanal vorhanden sind und deren Benachrichtigungen nicht explizit deaktiviert sind. auf einem Gerät mit 12 L oder weniger.

Der Nutzer hat Benachrichtigungen für Ihre App auf einem Gerät deaktiviert, das ausgeführt wird 12 L oder niedriger ist, bleibt die Ablehnung bestehen, wenn das Gerät Upgrades auf Android 13 oder höher ausführen.

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 zur Selbstverwaltung von Telefonanrufen konfiguriert sind

Wenn Ihre App Anrufe selbst verwaltet, ist die Berechtigung POST_NOTIFICATIONS nicht erforderlich, damit Ihre App Benachrichtigungen im Stil Notification.CallStyle senden kann.

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

  1. Hier wird die Berechtigung MANAGE_OWN_CALLS deklariert.
  2. Implementiert die ConnectionService-Schnittstelle.
  3. Registriert sich beim Mobilfunkanbieter des Geräts, indem registerPhoneAccount() angerufen wird.

App testen

Sie können prüfen, wie sich die Berechtigung für Benachrichtigungen auf Ihre App auswirkt, wenn sie zum ersten Mal auf einem Gerät mit Android 13 oder höher verwendet wird. Die Follower Android Debug Bridge (ADB)-Befehle ermöglichen die häufigsten Sequenzen von Nutzerentscheidungen und Geräteupgrades zu simulieren ohne das Testgerät zurücksetzen zu müssen:

  • Die App wurde 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 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 Android 12L oder niedriger installiert ist, und führt dann ein Upgrade auf Android 13 oder höher durch:

    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, aktualisiere deine 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 Nutzer bitten, Berechtigungen zu erteilen, sollten Sie ihnen die Möglichkeit geben, sich mit Ihrer App vertraut zu machen.

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. In der folgenden Liste sehen Sie einige Beispiele dafür, um die Aufforderung zum Senden von Benachrichtigungen anzuzeigen:

  • Der Nutzer tippt auf eine Benachrichtigungsglocke. Schaltfläche.
  • Der Nutzer entscheidet sich, einem Social-Media-Konto zu folgen.
  • Der Nutzer sendet eine Bestellung zur Lieferung von Lebensmitteln.

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

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 Berechtigung zum Senden von Benachrichtigungen. Der mittlere Bildschirm wird nur benötigt, shouldShowRequestPermissionRationale() gibt true zurück.

Berechtigung im Kontext anfordern

Wenn du in deiner App Berechtigungen zum Senden von Benachrichtigungen anforderst, tu das im richtigen Kontext, sodass klar ist, wofür die Benachrichtigungen verwendet werden warum der Nutzer zustimmen 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 transparenter zu machen. wird Ihrer App wahrscheinlich die Berechtigung zum Senden von Benachrichtigungen erteilt.

Prüfen, ob Ihre 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

Wenn Sie die Genehmigung zum Senden von Benachrichtigungen erhalten haben, verwenden Sie die Berechtigung verantwortungsvoll. Nutzer können die Anzahl der täglichen Benachrichtigungen sehen, die Ihre App sendet, und die Berechtigung jederzeit widerrufen.