Autorisation d'exécution des notifications

Android 13 (niveau d'API 33) ou version ultérieure est compatible avec autorisation d'exécution pour l'envoi Notifications non exemptées (y compris les services de premier plan) depuis une application: POST_NOTIFICATIONS Ce changement permet aux utilisateurs de se concentrer sur les notifications les plus importantes de l'IA générative.

Nous vous recommandons vivement de cibler Android 13 ou version ultérieure dès que possible que possible pour bénéficier du contrôle et de la flexibilité supplémentaires . Si vous continuez à cibler la version 12L (niveau d'API 32) ou une version antérieure, une certaine flexibilité concernant les demandes d'autorisation dans le contexte de l'utilisation les fonctionnalités.

Déclarer l'autorisation

Pour demander la nouvelle autorisation de notification à partir de votre application, mettez à jour votre application vers cibler Android 13 et suivre un processus semblable à celui demander d'autres autorisations d'exécution, dans les sections suivantes.

L'autorisation dont vous avez besoin dans le fichier manifeste de votre application apparaît dans l'extrait de code suivant:

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

Les fonctionnalités de l'application dépendent du choix de l'utilisateur dans la boîte de dialogue des autorisations

Dans cette boîte de dialogue, les utilisateurs disposent les actions suivantes dont ils disposent:

Les sections suivantes décrivent le comportement de votre application, en fonction de l'action de l'utilisateur.

L'utilisateur sélectionne "Autoriser".

Si l'utilisateur sélectionne l'option allow, votre application peut effectuer les opérations suivantes:

L'utilisateur sélectionne "Ne pas autoriser"

Si l'utilisateur sélectionne l'option Ne pas autoriser, votre application ne pourra pas envoyer notifications, sauf s'ils peuvent faire l'objet d'une exemption. Tout les canaux de notification sont bloqués, à l'exception de quelques de rôles. Ce comportement est semblable à celui observé lorsque l'utilisateur active désactiver toutes les notifications pour votre application dans les paramètres système.

Attention:Si votre application cible la version 12L ou une version antérieure et que l'utilisateur appuie sur Ne pas autoriser, même une seule fois, il n'est pas invité jusqu'à ce que l'un des événements suivants se produise:

  • L'utilisateur désinstalle et réinstalle votre application.
  • Mettez à jour votre application afin qu'elle cible Android 13 ou version ultérieure.

L'utilisateur balaie depuis la boîte de dialogue

Si l'utilisateur balaie la boîte de dialogue, c'est-à-dire qu'il ne sélectionne ni l'un, ni l'autre allow ou dont allow : l'état de l'autorisation de notification n'est pas le changement.

Effets sur les applications nouvellement installées

Si un utilisateur installe votre application sur un appareil équipé d'Android 13 ou supérieures, les notifications de votre application sont désactivées par défaut. Votre application doit patienter à envoyer des notifications jusqu'à ce que vous demandiez la nouvelle autorisation accorde cette autorisation à votre application.

L'heure à laquelle la boîte de dialogue des autorisations s'affiche en fonction de la cible de votre appli Version du SDK:

  • Si votre application cible Android 13 ou une version ultérieure, elle a terminé contrôler le moment où la boîte de dialogue d'autorisation s'affiche. Profitez-en pour expliquer aux utilisateurs pourquoi l'application a besoin de cette autorisation. en les encourageant à le donner.
  • Si votre application cible la version 12L (niveau d'API 32) ou une version antérieure, le système affiche la boîte de dialogue d'autorisation la première fois que votre application démarre une activité après que vous créer un canal de notification. Si votre app démarre une activité, puis crée son premier canal de notification. Ce se produit généralement au démarrage de l'application.

Conséquences sur les mises à jour d'applications existantes

Pour limiter les perturbations associées à l'autorisation de notification, le système accorde automatiquement l'autorisation préalable à tous applications éligibles lorsque l'utilisateur met à niveau son appareil vers Android 13 ou version ultérieure En d'autres termes, ces applications peuvent continuer à envoyer des notifications aux utilisateurs, qui ne verront pas d'invite d'autorisation d'exécution.

Éligibilité à l'octroi d'une autorisation préalable

Pour que votre application soit éligible à un pré-accord automatique, elle doit disposer d'un canal de notification existant et que ses notifications ne soient pas explicitement désactivées par l'utilisateur sur un appareil équipé de la version 12L ou d'une version antérieure.

Si l'utilisateur a désactivé les notifications pour votre appli sur un appareil qui exécute 12L ou moins, le refus persiste lorsque l'appareil les mises à niveau vers Android 13 ou version ultérieure.

Exceptions

Cette section contient l'ensemble des notifications et des applications exemptées modification du comportement de l'autorisation de notification. Sur Android 13 (niveau d'API 33) ou version ultérieure, Si l'utilisateur refuse l'autorisation de notification, il continue de voir les notifications concernant aux services de premier plan Gestionnaire de tâches mais que vous ne les voyez pas panneau des notifications.

Sessions multimédias

Notifications associées à sessions multimédias sont être exemptés de ce changement de comportement.

Applis configurées pour gérer vous-même les appels téléphoniques

Si votre application se configure elle-même pour gérer vous-même les appels téléphoniques, vous l'autorisation POST_NOTIFICATIONS n'est pas nécessaire pour que votre appli des notifications qui utilisent le Notification.CallStyle style de notification.

Le système considère que votre appli s'est configurée pour s'auto-gérer s'il effectue chacune des opérations suivantes:

  1. Déclare l'autorisation MANAGE_OWN_CALLS
  2. Met en œuvre la méthode ConnectionService de commande.
  3. S'enregistre auprès du fournisseur de télécommunications de l'appareil en appelant registerPhoneAccount()

Tester votre application

Vous pouvez évaluer l'impact de l'autorisation de notification sur votre appli utilisé pour la première fois sur un appareil équipé d'Android 13 ou version ultérieure. La suivi des ensembles de commandes Android Debug Bridge (ADB) permettent de simuler les séquences les plus courantes de choix des utilisateurs et de mises à niveau d'appareils sans avoir à réinitialiser votre appareil de test:

  • L'application vient d'être installée sur un appareil qui exécute Android 13 ou version ultérieure:

    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
  • L'utilisateur conserve les notifications activées lorsque l'application est installée sur un (version 12L ou antérieure), l'appareil les mises à niveau vers Android 13 ou version ultérieure:

    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
  • L'utilisateur désactive manuellement les notifications lorsque l'application est installée sur un (version 12L ou antérieure), l'appareil les mises à niveau vers Android 13 ou version ultérieure:

    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

Bonnes pratiques

Cette section décrit plusieurs façons d'utiliser la nouvelle notification le plus efficacement possible dans votre application.

Mettre à jour la version du SDK cible de votre application

Pour donner à votre application plus de flexibilité quant au moment où la boîte de dialogue d'autorisation s'affiche, mettez à jour votre application pour qu'elle cible Android 13 ou version ultérieure.

Attendre avant d'afficher l'invite d'autorisation de notification

Avant de demander aux utilisateurs d'accorder des autorisations, laissez-les se familiariser avec avec votre application.

Les nouveaux utilisateurs voudront peut-être explorer l'application et se rendre compte par eux-mêmes les avantages de chaque demande de notification. Vous pouvez déclencher une invite d'autorisation d'une action de l'utilisateur. La liste suivante présente plusieurs exemples moment idéal pour afficher l'invite d'autorisation de notification:

  • L'utilisateur appuie sur une "cloche d'alerte" .
  • L'utilisateur choisit de suivre le compte d'une personne sur les réseaux sociaux.
  • L'utilisateur envoie une commande pour se faire livrer un repas.

La figure 1 présente un workflow recommandé pour demander la notification l'autorisation. À moins que shouldShowRequestPermissionRationale() renvoie true, votre application n'a pas besoin d'afficher l'écran central, celui qui dont le titre est "Recevoir une notification".

Vous pouvez également configurer une demande pour qu'elle s'affiche une fois que vous avez donné aux utilisateurs la possibilité de pour vous familiariser avec votre application. Par exemple, vous pouvez attendre que le troisième ou quatrième fois que l'utilisateur lance votre application.

Une fois l&#39;utilisateur connecté,
   invitation à être averti des modifications apportées au trajet. Une fois que l&#39;utilisateur a appuyé sur le
   Je suis sur le bouton, l&#39;application demande la nouvelle autorisation, ce qui entraîne le
   boîte de dialogue qui s&#39;affiche
Figure 1. Un workflow orienté par l'utilisateur recommandé pour les demandes l'autorisation de notification. L'écran du milieu n'est nécessaire que si shouldShowRequestPermissionRationale() renvoie true.

Demander l'autorisation en contexte

Lorsque vous demandez des autorisations de notification dans votre application, faites-le avec le le contexte, afin que l’utilisation des notifications soit claire et pourquoi l'utilisateur devrait l'activer. Par exemple, une application de messagerie peut inclure des options envoyer des notifications pour chaque nouvel e-mail, ou uniquement pour les e-mails dont l'utilisateur est le destinataire uniquement.

Profitez de cette occasion pour faire preuve de transparence quant à vos intentions, et les utilisateurs sont plus susceptibles d'accorder l'autorisation de notification à votre application.

Vérifier si votre application peut envoyer des notifications

Avant que votre application n'envoie une notification, vérifiez si l'utilisateur a activé des notifications pour votre application. Pour ce faire, appelez areNotificationsEnabled()

Utiliser l'autorisation de manière responsable

Une fois que vous avez reçu l'autorisation d'envoyer des notifications, n'oubliez pas d'utiliser l'autorisation de manière responsable. Les utilisateurs peuvent voir le nombre de notifications quotidiennes envoyées par votre appli envoie et ils peuvent révoquer l'autorisation à tout moment.