Autorisation d'exécution des notifications

Android 13 (niveau d'API 33) ou version ultérieure est compatible avec une autorisation d'exécution permettant d'envoyer des notifications non exemptées (y compris des services de premier plan) à partir d'une application : POST_NOTIFICATIONS. Ce changement permet aux utilisateurs de se concentrer sur les notifications qui les intéressent le plus.

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

Déclarer l'autorisation

Pour demander la nouvelle autorisation de notification à votre application, mettez-la à jour afin qu'elle cible Android 13 et effectuez un processus semblable à celui de la demande d'autres autorisations d'exécution, comme indiqué dans les sections suivantes.

L'autorisation que vous devez déclarer 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 des actions suivantes:

Les sections suivantes décrivent le comportement de votre application en fonction de l'action effectuée par 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 de notifications, sauf si elle répond aux critères d'une exception. Tous les canaux de notification sont bloqués, à l'exception de quelques rôles spécifiques. Ce comportement est semblable à celui qui se produit lorsque l'utilisateur désactive manuellement toutes les notifications de 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 plus invité à le faire tant que l'un des événements suivants ne se produit pas:

  • 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 pas allow (autoriser) ni Don't allow (Ne pas autoriser), l'état de l'autorisation de notification ne change pas.

Effets sur les applications nouvellement installées

Si un utilisateur installe votre application sur un appareil équipé d'Android 13 ou version ultérieure, les notifications de votre application sont désactivées par défaut. Pour envoyer des notifications, votre application doit attendre que vous ayez demandé la nouvelle autorisation et que l'utilisateur l'accorde à votre application.

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

  • Si votre application cible Android 13 ou une version ultérieure, elle contrôle totalement 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 à l'accorder.
  • 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 la création d'un canal de notification, ou lorsque votre application démarre une activité, puis crée son premier canal de notification. Elle s'effectue 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 à toutes les 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 voient 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 ses notifications ne doivent pas être explicitement désactivées par l'utilisateur sur un appareil équipé de la version 12L ou inférieure.

Si l'utilisateur a désactivé les notifications pour votre application sur un appareil exécutant la version 12L ou une version antérieure, ce refus persiste lorsque l'appareil passe à Android 13 ou version ultérieure.

Exceptions

Cette section contient l'ensemble des notifications et des applications exemptées du changement de comportement des autorisations 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 des notifications liées aux services de premier plan dans le gestionnaire de tâches, mais ne les voit pas dans le panneau des notifications.

Sessions multimédias

Les notifications liées aux sessions multimédias ne sont pas concernées par 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 automatiquement les appels téléphoniques, vous n'avez pas besoin de l'autorisation POST_NOTIFICATIONS pour qu'elle envoie des notifications utilisant le style de notification Notification.CallStyle.

Le système considère que votre application s'est configurée automatiquement pour gérer automatiquement les appels téléphoniques si elle effectue chacune des opérations suivantes:

  1. Déclare l'autorisation MANAGE_OWN_CALLS
  2. Elle implémente l'interface ConnectionService.
  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 application lors de sa première utilisation sur un appareil équipé d'Android 13 ou version ultérieure. Les ensembles de commandes Android Debug Bridge (ADB) suivants vous 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 a été récemment installée sur un appareil équipé d'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 appareil exécutant la version 12L ou antérieure, puis que l'appareil passe à 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 appareil exécutant la version 12L ou antérieure, puis que l'appareil passe à 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

pour réussir votre lancement

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

Mettre à jour la version du SDK cible de votre application

Pour donner plus de flexibilité à votre application quant au moment où la boîte de dialogue d'autorisation s'affiche, mettez-la à jour afin 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, permettez-leur de se familiariser avec votre application.

Les nouveaux utilisateurs voudront peut-être explorer l'application et constater par eux-mêmes les avantages de chaque demande de notification individuelle. Vous pouvez déclencher une invite d'autorisation à partir d'une action de l'utilisateur. La liste suivante présente plusieurs exemples de cas où il est bon d'afficher l'invite d'autorisation de notification:

  • L'utilisateur appuie sur la 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 l'autorisation de notification. À moins que shouldShowRequestPermissionRationale() ne renvoie true, votre application n'a pas besoin d'afficher l'écran du milieu, celui dont le titre contient le texte "Recevoir une notification".

Vous pouvez également définir une requête pour qu'elle s'affiche une fois que vous avez donné aux utilisateurs l'occasion de se familiariser avec votre application. Par exemple, vous pouvez attendre la troisième ou la quatrième fois que l'utilisateur lance votre application.

Une fois connecté, l&#39;utilisateur reçoit une invitation pour être informé des modifications apportées à son trajet. Lorsque l&#39;utilisateur appuie sur le bouton &quot;I&#39;m in&quot; (Je suis dans), l&#39;application demande la nouvelle autorisation, ce qui entraîne l&#39;affichage de la boîte de dialogue système
Figure 1. Workflow recommandé par l'utilisateur pour demander 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 dans le contexte approprié, afin que l'utilisation des notifications et la raison pour laquelle l'utilisateur doit les activer soient clairement indiquées. Par exemple, une application de messagerie peut inclure des options permettant d'envoyer des notifications pour chaque nouvel e-mail, ou uniquement les e-mails dont l'utilisateur est le seul destinataire.

Profitez-en pour montrer vos intentions en toute transparence. 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é les 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 application et révoquer l'autorisation à tout moment.