Autorisation de notification pour les notifications nécessitant une confirmation

Les notifications dans Android 13 utilisent un modèle d'activation, ce qui diffère des versions précédentes d'Android, qui utilisent un modèle de désactivation. Dans Android 13, toutes les applications doivent demander l'autorisation aux utilisateurs avant d'envoyer des notifications. Ce modèle permet de réduire les interruptions dues aux notifications, de limiter la surcharge d'informations et d'aider les utilisateurs à contrôler les notifications qui s'affichent en fonction de ce qui est important pour eux. Pour prendre en charge le modèle d'activation, les OEM doivent implémenter des modifications dans les systèmes d'autorisation d'exécution et de notification.

Cette page décrit ce que les OEM doivent implémenter pour prendre en charge cette modification et comment valider l'implémentation.

Implémenter des modifications pour les notifications d'activation

À partir d'Android 13, les applications doivent déclarer leur intention d'envoyer des notifications en demandant l'autorisation d'exécution android.permission.POST_NOTIFICATION au système avant de pouvoir envoyer des notifications.

Dans Android 13 et versions ultérieures, le paramètre qui détermine si une application peut envoyer des notifications à l'utilisateur est stocké dans le système d'autorisation. Avant Android 13, ce paramètre était stocké dans le système de notification. Par conséquent, les OEM doivent migrer les données de notification existantes indiquant si une application est autorisée à envoyer des notifications du système de notification vers le système d'autorisation d'exécution. Les OEM doivent également conserver les API existantes dans le système de notification qui présentent ces données aux développeurs d'applications.

Les modifications apportées aux systèmes d'autorisation et de notification sont basées sur le modèle d'activation du comportement des notifications utilisateur et sont décrites dans la section Consignes d'implémentation.

Comportement des notifications utilisateur dans un modèle d'activation

Le tableau suivant illustre le comportement des notifications pour différentes versions d'applications sur un appareil exécutant Android 13 :

Appareil sous Android 13 Applications ciblant Android 13 ou version ultérieure Applications ciblant des versions antérieures à Android 13
Nouvelle installation Les notifications sont bloquées jusqu'à ce que l'application les demande.

Les applications contrôlent le moment où elles demandent l'autorisation.

Les notifications sont bloquées jusqu'à ce que le système d'exploitation les demande.

L'autorisation est demandée lors de la première exécution de l'application.

Application existante (mise à niveau) Les notifications sont autorisées jusqu'à ce que l'application les demande.

L'autorisation temporaire est accordée jusqu'à ce que l'application la demande lors de la première exécution éligible.

Les notifications sont autorisées jusqu'à ce que le système d'exploitation les demande.

L'autorisation temporaire est accordée jusqu'à la première exécution de l'application.

Consignes d'implémentation

Pour obtenir une implémentation de référence, consultez les services de notification, d'autorisation et de stratégie. Pour implémenter des exceptions pour les gestionnaires d'autorisations par défaut, consultez Autorisations d'exécution.

Lors de l'implémentation, suivez les consignes ci-dessous concernant le comportement des notifications utilisateur pour les applications ciblant Android 13 ou des SDK inférieurs :

  • Les applications fraîchement installées sur un appareil Android 13 ne doivent pas envoyer de notification sans que l'utilisateur n'approuve une demande d'autorisation.
    • Si l'application cible les versions Android 13 et ultérieures, les notifications doivent être bloquées jusqu'à ce que l'application les demande, car elle contrôle le moment où elle demande l'autorisation de l'utilisateur.
    • Si l'application cible des versions antérieures à Android 13, les notifications doivent être bloquées jusqu'à ce que le système d'exploitation les demande. Le système d'exploitation doit afficher la demande d'autorisation lors de la première exécution de l'application.
  • Toute application qui existait sur l'appareil avant une mise à niveau vers Android 13, ou toute application restaurée via une sauvegarde et une restauration, doit être autorisée à envoyer des notifications jusqu'à la première fois que l'utilisateur lance une activité à partir de cette application.

    • Pour les applications ciblant le SDK des versions Android 13 et ultérieures, si l'utilisateur n'a pas personnalisé les paramètres de notification pour cette application au niveau de l'application ou de NotificationChannel, révoquez l'autorisation temporaire. Les applications doivent ensuite demander l'autorisation à l'utilisateur avant de pouvoir continuer à envoyer des notifications.

      Si une application mise à niveau ciblant Android 13 ne dispose pas actuellement de l'autorisation de notification via l'autorisation de mise à niveau temporaire et que l'utilisateur l'a lancée au moins une fois, l'application doit afficher une demande d'autorisation de notification avant de pouvoir exécuter d'autres services de premier plan.

    • Pour les applications dont le SDK cible est inférieur à Android 13, interceptez le premier lancement d'activité après que l'application a créé au moins un NotificationChannel pour afficher une demande d'autorisation demandant si l'utilisateur souhaite recevoir des notifications de l'application.

      Si un utilisateur a précédemment personnalisé les paramètres de notification au niveau de l'application ou de NotificationChannel pour une application sur l'appareil en cours de mise à niveau ou dans une sauvegarde en cours de restauration sur l'appareil, le paramètre au niveau de l'application doit être migré vers le système d'autorisation avec l'indicateur FLAG_PERMISSION_USER_SET. Aucune autre demande d'autorisation de notification ne doit être affichée à l'utilisateur, sauf si l'application le demande spécifiquement.

  • La sauvegarde et la restauration doivent être compatibles en amont et en aval entre un appareil Android 13 et un appareil exécutant une version antérieure du système d'exploitation. Les données de sauvegarde générées à partir d'un appareil Android 13 doivent être restaurées sur une version antérieure du système d'exploitation, et les données de sauvegarde d'une version antérieure du système d'exploitation doivent être restaurées sur un appareil Android 13.

  • Les notifications multimédias associées à la lecture multimédia en cours doivent être exemptées de l'autorisation de notification.

Valider les modifications apportées aux systèmes d'autorisation et de notification

Pour valider l'implémentation, exécutez les tests suivants :