Autorisation de notification pour les notifications nécessitant une confirmation

Les notifications dans Android 13 utilisent un modèle d'activation, contrairement aux 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 invites de notification. Ce modèle permet de réduire les interruptions causées par les notifications, de minimiser 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 de notification et d'autorisation d'exécution.

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

Appliquer les 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'autorisations. 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'autorisations 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 de notification et d'autorisation sont basées sur le modèle d'activation du comportement de notification des utilisateurs et sont décrites dans la section Consignes d'implémentation.

Comportement des notifications utilisateur dans un modèle avec 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 vous y invite.

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

Les notifications sont bloquées jusqu'à ce que l'OS vous y invite.

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 vous y invite.

Une 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 l'OS vous y invite.

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 sections Service de notification, Service d'autorisation et Service de règles. 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 les SDK Android 13 ou versions antérieures :

  • Les applications fraîchement installées sur un appareil Android 13 ne doivent pas envoyer de notification sans que l'utilisateur ait approuvé une invite d'autorisation.
    • Si l'application cible Android 13 ou une version ultérieure, les notifications doivent être bloquées jusqu'à ce que l'application le demande, car elle contrôle quand et si elle doit demander l'autorisation de l'utilisateur.
    • Si l'application cible des versions antérieures à Android 13, les notifications doivent être bloquées jusqu'à ce que l'OS le demande. L'OS doit afficher l'invite d'autorisation lors de la première exécution de l'application.
  • Toute application qui existait sur l'appareil avant la mise à niveau vers Android 13, ou toute application restaurée via la sauvegarde et la 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 Android 13 ou version ultérieure, révoquez l'autorisation temporaire si l'utilisateur n'a pas personnalisé les paramètres de notification pour cette application au niveau de l'application ou de NotificationChannel. 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 temporaire de mise à niveau et que l'utilisateur l'a lancée au moins une fois, l'application doit afficher une invite d'autorisation de notification avant de pouvoir exécuter d'autres services de premier plan.

    • Pour les applications dont le SDK cible est une version antérieure à Android 13, interceptez le premier lancement d'activité après que l'application a créé au moins un NotificationChannel pour afficher une invite 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 invite 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 rétrocompatibles et compatibles avec les versions ultérieures entre un appareil Android 13 et un appareil équipé d'une version antérieure de l'OS. Les données de sauvegarde générées à partir d'un appareil Android 13 doivent être restaurées sur une version antérieure de l'OS, et les données de sauvegarde d'une version antérieure de l'OS doivent être restaurées sur un appareil Android 13.

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

Valider les modifications apportées aux systèmes de notifications et d'autorisations

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