Laufzeitberechtigung für Benachrichtigungen

Android 13 (API-Level 33) und höher unterstützt Laufzeitberechtigung zum Senden nicht ausgenommene Benachrichtigungen (einschließlich FGS) über eine 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 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 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 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.

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. Deine App muss warten bis Benachrichtigungen senden, bis Sie die neue Berechtigung angefordert haben und dass Ihre App diese Berechtigung erhält.

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. Erklären Sie bei dieser Gelegenheit, warum die App diese Berechtigung benötigt, um sie zu bitten.
  • Wenn Ihre App auf 12L (API-Level 32) oder niedriger ausgerichtet ist, zeigt das System wenn Ihre App zum ersten Mal eine Aktivität startet, nachdem Sie einen Benachrichtigungskanal erstellen oder wenn Ihre wird eine Aktivität gestartet und anschließend der erste Benachrichtigungskanal erstellt. Dieses in der Regel beim Start der App.

Auswirkungen auf Updates bestehender Apps

Um Störungen im Zusammenhang mit der Berechtigung zum Senden von Benachrichtigungen zu minimieren, gewährt 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.

Berechtigung zur Vorabgenehmigung von Berechtigungen

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

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 für die Berechtigung zum Senden von 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.

<ph type="x-smartling-placeholder">
</ph> 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 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 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.