Dans Android 13, les notifications utilisent un modèle d'acceptation, qui est une modification par rapport aux versions précédentes d'Android, qui utilisaient un modèle de désactivation. Dans Android 13, toutes les applis doivent demander l'autorisation aux utilisateurs au préalable en envoyant des invites de notification. Ce modèle réduit le nombre de notifications les interruptions, minimise la surcharge d'informations et aide les utilisateurs à contrôler ce qui les notifications s'affichent en fonction de ce qui est important pour eux. Pour prendre en charge les OEM doivent modifier les paramètres de notification et d'exécution les systèmes d'autorisation.
Cette page décrit ce que les OEM doivent implémenter pour prendre en charge ce changement et comment pour valider l'implémentation.
Apporter des modifications aux notifications d'activation
À partir d'Android 13, les applications doivent déclarer leur
d'envoyer des notifications en demandant
android.permission.POST_NOTIFICATION
l'autorisation d'exécution du 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 concernant l'autorisation d'une application à envoyer des notifications, à partir de la notification dans le système d'autorisation d'exécution. Les OEM doivent également gérer les API existantes dans le système de notification afin de transmettre ces données aux développeurs d'applications.
Les modifications apportées aux systèmes de notification et d'autorisation sont basées sur modèle d'acceptation du comportement de notification de l'utilisateur et sont décrites dans la section Consignes d'implémentation.
Comportement des notifications utilisateur dans un modèle d'acceptation
Le tableau suivant illustre le comportement des notifications pour différentes applications versions sur un appareil équipé d'Android 13:
Appareil équipé d'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 tant que l'application n'y est pas invitée.
Les applications contrôlent quand demander l'autorisation. |
Les notifications sont bloquées jusqu'à ce que le système d'exploitation y invite.
L'autorisation est demandée à la première exécution de l'appli. |
Application existante (mise à niveau) | Les notifications sont autorisées jusqu'à ce que l'application y invite.
Une autorisation temporaire est accordée jusqu'à ce que l'application vous le demande lors de la première exécution éligible. |
Les notifications sont autorisées jusqu'à ce que le système d'exploitation y invite.
L'autorisation temporaire est accordée jusqu'à la première exécution de l'appli. |
Consignes d'implémentation
Pour en savoir plus sur l'implémentation, consultez 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 les notifications aux utilisateurs. comportement pour les applications ciblant les SDK Android 13 ou version antérieure:
- Les applications récemment installées sur un appareil Android 13 doivent
ne pas envoyer de notification sans que l'utilisateur ait approuvé une invite d'autorisation.
- Si l'application cible les versions Android 13 et supérieur, les notifications doivent être bloquées jusqu'à ce que l'application le demande contrôle quand et si l'autorisation de l'utilisateur doit être demandée.
- Si l'application cible des versions antérieures à Android 13, les notifications doivent être bloquées jusqu'à à la demande du système d'exploitation. Le système d’exploitation doit afficher l’invite d’autorisation à 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 qui a été restaurée via une sauvegarde et la restauration, doivent être autorisés à envoyer des notifications jusqu'à la première fois lance une activité à partir de cette application.
Pour les applications qui ciblent le SDK des versions Android 13 et plus élevés, si l'utilisateur n'a pas personnalisé les paramètres de notification pour cette application au niveau de l'application ou du
NotificationChannel
, révoquez le droit d'accès temporaire accorder une autorisation. Les applications doivent ensuite demander l'autorisation à l'utilisateur autorisé à continuer à envoyer des notifications.Si une application mise à jour ciblant Android 13 ne disposent actuellement de l'autorisation de notification via la mise à niveau temporaire et que l'utilisateur l'a lancée au moins une fois, l'application doit afficher invite d'autorisation de notification avant d'autoriser l'exécution d'autres éléments de premier plan services.
Pour les applications dont le SDK cible est une version antérieure à Android 13, interception le lancement de la première activité une fois que l'application a créé au moins un
NotificationChannel
pour afficher une invite d'autorisation demandant si l'utilisateur souhaite recevoir des notifications depuis l'application.Si un utilisateur a déjà personnalisé les paramètres de notification sur la page d'application ou de niveau
NotificationChannel
pour une application sur l'appareil mis à niveau ou dans un sauvegarde en cours de restauration sur l'appareil, le paramètre au niveau de l'application doit être migré vers le système d'autorisations avec l'optionFLAG_PERMISSION_USER_SET
. Pas de suite l'invite d'autorisation de notification doit être présentée à l'utilisateur, sauf si l'application demande spécifiquement.
La sauvegarde et la restauration doivent être rétrocompatibles et Un appareil Android 13 et un appareil d'un système d'exploitation antérieur version. Données de sauvegarde générées à partir d'Android 13 l'appareil doit restaurer une version antérieure du système d'exploitation et sauvegarder les données à partir d'une version antérieure La version de l'OS doit être restaurée sur un appareil Android 13.
Les notifications multimédias associées à la lecture en cours doivent être exemptées à partir de l'autorisation de notification.
Valider les modifications apportées aux systèmes de notification et d’autorisation
Pour valider l'implémentation, exécutez les tests suivants:
Les tests unitaires comme spécifié dans
PreferencesHelperTest
NotificationManagerServiceTest
Tout test manuel qui teste les mises à niveau et la sauvegarde et la restauration.
Tout test du système d'autorisations et de notifications CTS qui envoie des notifications. Certains de ces tests se trouvent dans cts/tests/tests/permission/, NotificationManagerTest.java, et cts/tests/tests/notificationlegacy/.