Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Présentation des notifications

Une notification est un message qu'Android affiche en dehors de l'UI de votre application pour transmettre à l'utilisateur des rappels, des messages transmis par d'autres utilisateurs ou d'autres informations en temps réel provenant de votre application. L'utilisateur peut alors appuyer sur la notification pour ouvrir votre application ou effectuer une action directement depuis la notification.

Vous trouverez sur cette page un récapitulatif des endroits où les notifications s'affichent et des fonctionnalités disponibles. Si vous souhaitez commencer à créer des notifications, nous vous invitons plutôt à consulter la page Créer une notification.

Pour en savoir plus sur les modèles de conception et d'interaction, référez-vous au guide de conception des notifications. Par ailleurs, consultez l'exemple de notifications Android pour obtenir une démonstration des bonnes pratiques d'utilisation de l'API Notification.Style dans les applications mobiles et connectées.

Affichage des notifications sur un appareil

Les notifications apparaissent à différents endroits et sous différents formats. Par exemple, elles peuvent s'afficher automatiquement sous la forme d'une icône dans la barre d'état, d'un élément plus détaillé dans le panneau des notifications ou d'un badge sur l'icône de l'application, ainsi que sur les accessoires connectés associés.

Barre d'état et panneau des notifications

Lorsque vous émettez une notification, elle s'affiche d'abord sous la forme d'une icône dans la barre d'état.

Figure 1 : Les icônes de notification s'affichent à gauche dans la barre d'état

Les utilisateurs peuvent balayer la barre d'état vers le bas pour ouvrir le panneau des notifications, où ils peuvent obtenir plus de détails et effectuer des actions depuis la notification.

Figure 2 : Notifications dans le panneau des notifications

Les utilisateurs peuvent faire glisser vers le bas une notification du panneau pour afficher la vue développée, qui donne accès à plus de contenu ainsi qu'à des boutons d'action, le cas échéant.

Une notification reste visible dans le panneau des notifications jusqu'à ce qu'elle soit ignorée par l'application ou par l'utilisateur.

Avertissements

Sous Android 5.0 et versions ultérieures, les notifications peuvent apparaître brièvement dans une fenêtre flottante appelée avertissement. Ce type d'affichage est normalement utilisé pour les notifications importantes dont l'utilisateur doit être informé immédiatement, et apparaît uniquement si l'appareil est déverrouillé.

Figure 3 : Un avertissement s'affiche devant l'application au premier plan

L'avertissement apparaît au moment où votre application émet la notification. Il disparaît au bout d'un moment, mais reste visible dans le panneau des notifications, comme d'habitude.

Voici des exemples de conditions susceptibles de déclencher des avertissements :

  • L'activité de l'utilisateur est en mode plein écran (l'application utilise fullScreenIntent).
  • La notification a un niveau de priorité élevé et utilise des sonneries ou des vibrations sur des appareils fonctionnant sous Android 7.1 (niveau d'API 25) ou une version antérieure.
  • Le canal de la notification est d'importance élevée sur des appareils fonctionnant sous Android 8.0 (niveau d'API 26) ou une version ultérieure.

Écran de verrouillage

Sous Android 5.0 et versions ultérieures, les notifications peuvent s'afficher sur l'écran de verrouillage.

Vous pouvez configurer de manière automatisée le niveau de détail visible dans les notifications émises par votre application sur un écran de verrouillage sécurisé, ou même définir si la notification s'affiche ou non sur l'écran de verrouillage.

Les utilisateurs peuvent également modifier les paramètres système pour choisir le niveau de détail visible dans les notifications sur l'écran de verrouillage, avec la possibilité de désactiver toutes les notifications sur l'écran de verrouillage. Sous Android 8.0 et versions ultérieures, les utilisateurs peuvent choisir de désactiver ou d'activer les notifications sur l'écran de verrouillage pour chaque canal de notification.

Figure 4 : Notifications sur l'écran de verrouillage avec du contenu sensible masqué

Pour en savoir plus, consultez la section Définir la visibilité sur l'écran de verrouillage.

Badge sur l'icône de l'application

Avec les lanceurs d'applications compatibles sur les appareils fonctionnant sous Android 8.0 (niveau d'API 26) ou version ultérieure, les icônes d'application signalent la présence de nouvelles notifications par un "badge" coloré (également appelé "pastille de notification") sur l'icône de lanceur correspondante.

Les utilisateurs peuvent appuyer de manière prolongée sur l'icône d'une application pour afficher les notifications relatives à cette application. Ils peuvent ensuite ignorer les notifications de ce menu ou bien effectuer une action, comme dans le panneau des notifications.

Figure 5 : Badges de notification et menu accessible en appuyant de manière prolongée

Pour en savoir plus sur le fonctionnement des badges, consultez la page consacrée aux badges de notification.

Appareils Wear OS

Si l'utilisateur possède un appareil Wear OS associé, toutes vos notifications s'affichent sur celui-ci automatiquement, y compris les détails à développer et les boutons d'action.

Vous pouvez également améliorer l'expérience utilisateur en personnalisant certaines apparences de la notification sur les accessoires connectés et en proposant différentes actions, comme des suggestions de réponses ou des réponses par saisie vocale. Pour en savoir plus, découvrez comment ajouter à votre notification des fonctionnalités spécifiques aux accessoires connectés.

Figure 6 : Les notifications s'affichent automatiquement sur un appareil Wear OS associé

Anatomie d'une notification

L'aspect des notifications dépend des modèles du système. Votre application définit simplement le contenu de chaque partie du modèle. Certains détails de la notification ne sont visibles que dans la vue développée.

Figure 7 : Une notification comportant les informations de base

Les éléments les plus courants d'une notification sont numérotés dans la figure 7 :

  1. Petite icône : obligatoire et définie à l'aide de setSmallIcon()
  2. Nom de l'application : fourni par le système
  3. Horodatage : fourni par le système, mais vous pouvez le remplacer par setWhen() ou le masquer avec setShowWhen(false)
  4. Grande icône : facultative (généralement utilisée uniquement pour les photos de contact ; ne vous en servez pas pour l'icône de votre application) et définie à l'aide de setLargeIcon()
  5. Titre : facultatif et défini à l'aide de setContentTitle()
  6. Texte : facultatif et défini à l'aide de setContentText()

Pour en savoir plus sur la création d'une notification comportant ces fonctionnalités, consultez la page Créer une notification.

Actions de notification

Même si ce n'est pas obligatoire, chaque notification devrait ouvrir une activité correspondante dans l'application lorsque l'utilisateur appuie dessus. En plus de cette action par défaut, vous pouvez ajouter des boutons d'action permettant d'effectuer une tâche liée à l'application depuis la notification (souvent sans ouvrir d'activité), comme dans la figure 9.

Figure 9 : Une notification comportant des boutons d'action

Sous Android 7.0 (niveau d'API 24) et versions ultérieures, vous pouvez également ajouter une action permettant de répondre aux messages ou de saisir un autre texte directement depuis la notification.

Vous trouverez plus d'explications sur l'ajout de boutons d'action sur la page Créer une notification.

Notification à développer

Par défaut, le contenu textuel de la notification est tronqué pour tenir sur une seule ligne. Si vous souhaitez que votre notification soit plus longue, vous pouvez activer une zone de texte plus importante que l'utilisateur pourra développer. Pour cela, vous devez appliquer un modèle supplémentaire, comme dans la figure 8.

Figure 8 : Une notification à développer pour les textes longs

Vous pouvez également créer une notification à développer contenant une image, avec un affichage de type boîte de réception, une discussion par chat ou des commandes de lecture multimédia. Pour en savoir plus, consultez la page Créer une notification extensible.

Nous vous recommandons de toujours utiliser ces modèles pour assurer une compatibilité de conception correcte sur tous les appareils. Toutefois, vous pouvez également créer une mise en page de notification personnalisée si nécessaire.

Mises à jour et groupes de notifications

Pour éviter de "bombarder" vos utilisateurs de notifications trop nombreuses ou redondantes lorsque plusieurs nouveaux éléments sont disponibles, il peut être pertinent de modifier une notification existante plutôt que d'en émettre une nouvelle. Vous pouvez également opter pour une notification de type boîte de réception pour afficher les nouveaux éléments d'une conversation.

Cependant, s'il est nécessaire d'envoyer plusieurs notifications, nous vous recommandons de les rassembler dans un groupe (fonctionnalité proposée sous Android 7.0 et versions ultérieures). Un groupe de notifications vous permet de condenser plusieurs notifications en un seul post dans le panneau des notifications, avec un résumé. L'utilisateur peut ensuite développer la notification pour consulter les détails de chaque notification individuelle.

Il peut développer progressivement le groupe de notifications et chacune des notifications qu'il contient pour en savoir plus.

Figure 10 : Un groupe de notifications réduit et développé

Pour découvrir comment ajouter des notifications à un groupe, consultez la page Créer un groupe de notifications.

Canaux de notification

Sous Android 8.0 (niveau d'API 26) et versions ultérieures, toutes les notifications doivent être attribuées à un canal, sans quoi elles ne s'affichent pas. En catégorisant les notifications en canaux, les utilisateurs peuvent désactiver certains canaux de notification de votre application (au lieu de toutes vos notifications), et contrôler les options visuelles et sonores de chaque canal, le tout dans les paramètres du système Android (figure 11). Les utilisateurs peuvent également appuyer de manière prolongée sur une notification pour modifier les comportements du canal associé.

Sur les appareils fonctionnant sous Android 7.1 (niveau d'API 25) et versions antérieures, les utilisateurs ne peuvent gérer les notifications que par application (chaque application ne disposant effectivement que d'un seul canal sous Android 7.1 et versions antérieures).

Figure 11 : Paramètres de notification pour l'application Clock (Horloge) et l'un de ses canaux

Une application peut avoir plusieurs canaux de notification : un canal distinct pour chaque type de notification émis par l'application. Une application peut également créer des canaux de notification en fonction des choix des utilisateurs. Par exemple, vous pouvez configurer des canaux de notification distincts pour chaque groupe de conversation créé par un utilisateur dans une application de messagerie.

C'est également au niveau du canal que vous pouvez spécifier le niveau d'importance de vos notifications sous Android 8.0 et versions ultérieures. Toutes les notifications publiées sur le même canal de notification ont ainsi le même comportement.

Pour en savoir plus, consultez la page Créer et gérer des canaux de notification.

Importance d'une notification

C'est en fonction de l'importance d'une notification qu'Android détermine le degré d'interruption (visuelle et sonore) d'une notification. Plus l'importance d'une notification est élevée, plus la notification peut être interruptive.

Sous Android 8.0 (niveau d'API 26) et versions ultérieures, l'importance d'une notification dépend de l'importance du canal sur lequel la notification a été publiée. Les utilisateurs peuvent modifier l'importance d'un canal de notification dans les paramètres système (figure 12). Sous Android 7.1 (niveau d'API 25) et versions antérieures, l'importance de chaque notification est déterminée par la priorité (priority) de la notification.

Figure 12 : Les utilisateurs peuvent modifier l'importance de chaque canal sous Android 8.0 et versions ultérieures

Les niveaux d'importance possibles sont les suivants :

  • Urgence : émet un signal sonore et s'affiche sous la forme d'un avertissement
  • Importance élevée : émet un signal sonore
  • Importance moyenne : pas de signal sonore
  • Importance faible : pas de signal sonore et ne s'affiche pas dans la barre d'état

Toutes les notifications, quelle que soit leur importance, s'affichent aux emplacements de l'UI du système qui n'impliquent pas d'interruption : panneau des notifications, badge sur l'icône dans le lanceur d'applications (vous pouvez toutefois modifier l'apparence du badge de notification).

Pour en savoir plus, découvrez comment définir l'importance.

Mode "Ne pas déranger"

Sous Android 5.0 (niveau d'API 21) et versions ultérieures, les utilisateurs peuvent activer le mode "Ne pas déranger", qui permet de désactiver les sons et les vibrations pour toutes les notifications. Ces dernières apparaissent toujours dans l'UI du système, sauf indication contraire de l'utilisateur.

Le mode "Ne pas déranger" comporte trois niveaux différents :

  • Silence total : bloque tous les sons et les vibrations, y compris ceux des alarmes, de la musique, des vidéos et des jeux.
  • Alarmes uniquement : bloque tous les sons et vibrations, sauf les alarmes.
  • Prioritaires uniquement : les utilisateurs peuvent définir quelles catégories du système peuvent les interrompre (telles que les alarmes, les rappels, les événements, les appels ou les messages). Pour les messages et les appels, les utilisateurs peuvent également choisir de les filtrer en fonction de l'expéditeur ou de l'appelant (figure 13).

Figure 13 : Les utilisateurs peuvent autoriser les notifications en fonction des catégories du système (à gauche) et de l'expéditeur ou de l'appelant (à droite).

Sous Android 8.0 (niveau d'API 26) et versions ultérieures, les utilisateurs peuvent également autoriser les notifications pour des catégories propres à l'application (également appelées canaux) en ignorant le mode "Ne pas déranger" canal par canal. Par exemple, une application de paiement peut disposer de canaux pour les notifications relatives aux retraits et aux virements. L'utilisateur peut ensuite choisir d'autoriser les notifications de retrait, de virement, ou les deux en mode prioritaire. Sur les appareils fonctionnant sous Android 7.1 (niveau d'API 25) et versions antérieures, les utilisateurs peuvent autoriser les notifications en fonction de l'application plutôt que du canal.

Pour configurer correctement vos notifications pour ces paramètres utilisateur, vous devez définir une catégorie et un canal à appliquer à l'ensemble du système.

Notifications pour les services de premier plan

Une notification est requise lorsque votre application exécute un "service de premier plan", c'est-à-dire un Service fonctionnant en arrière-plan, d'une durée conséquente et remarquable par l'utilisateur, tel qu'un lecteur multimédia. Cette notification ne peut pas être ignorée comme les autres notifications. Pour supprimer la notification, le service doit être arrêté ou retiré du "premier plan".

Pour en savoir plus, consultez la section Exécuter un service de premier plan. Si vous concevez un lecteur multimédia, consultez également la section Utiliser les notifications MediaStyle avec un service de premier plan.

Limites de publication

Depuis Android 8.1 (niveau d'API 27), les applications ne peuvent pas émettre une notification sonore plus d'une fois par seconde. Si votre application publie plusieurs notifications en une seconde, elles s'affichent toutes comme prévu, mais seule la première notification par seconde est annoncée au moyen d'un son.

Cependant, Android applique également une limite sur les mises à jour d'une notification. Si vous publiez trop rapidement des mises à jour dans une notification (plusieurs en moins d'une seconde), le système peut abandonner certaines mises à jour.

Compatibilité des notifications

Sous que la version Android 1.0 a été lancée, l'UI du système de notification et les API associées aux notifications ont évolué de façon constante. Pour utiliser les dernières fonctionnalités des API de notification tout en maintenant la compatibilité avec les anciens appareils, utilisez l'API de notification de la bibliothèque Support NotificationCompat et ses sous-classes, ainsi que NotificationManagerCompat. Cela vous évitera d'écrire du code conditionnel pour vérifier les niveaux d'API, car ces API le font pour vous.

NotificationCompat est mis à jour à mesure de l'évolution de la plate-forme pour inclure les dernières méthodes. Il est important de souligner que la disponibilité d'une méthode dans NotificationCompat ne garantit pas que la fonctionnalité correspondante sera disponible sur les appareils anciens. Dans certains cas, l'appel d'une nouvelle API interrompt toute opération sur les appareils anciens. Par exemple, NotificationCompat.addAction() affiche uniquement le bouton d'action sur un appareil fonctionnant sous Android 4.1 (niveau d'API 16) et versions ultérieures.

Vous trouverez ci-dessous un résumé des principaux changements de comportement pour les notifications Android.

Android 4.1, niveau d'API 16

  • Des modèles de notifications (ou styles de notifications) à développer ont été intégrés, permettant d'afficher les informations de la notification dans une zone de contenu plus grande. Les utilisateurs peuvent développer une notification en balayant simplement l'écran vers le haut ou vers le bas.
  • Il est possible d'ajouter des actions à une notification, sous la forme de boutons.
  • Les utilisateurs peuvent désactiver les notifications par application dans les paramètres.

Android 4.4, niveaux d'API 19 et 20

  • Des services d'écouteur de notification ont été ajoutés à l'API.
  • La compatibilité avec Android Wear (désormais appelé "Wear OS") est ajoutée à l'API de niveau 20.

Android 5.0, niveau d'API 21

  • Des notifications sur l'écran de verrouillage et des avertissements ont été intégrés.
  • L'utilisateur peut désormais mettre le téléphone en mode "Ne pas déranger" et autoriser les interruptions de certaines notifications lorsque l'appareil est en mode "Prioritaires uniquement".
  • Des méthodes ont été ajoutées à l'API pour définir si une notification doit être affichée ou non sur l'écran de verrouillage (setVisibility()) et pour spécifier une version "publique" du texte de la notification.
  • La méthode setPriority() a été ajoutée pour indiquer au système le degré d'interruption d'une notification (par exemple, si la valeur est élevée, la notification s'affichera sous la forme d'un avertissement).
  • Les piles de notifications sont compatibles avec les appareils Android Wear (désormais appelé Wear OS). Pour créer une pile de notifications, utilisez setGroup(). Sachez que les piles de notifications ne fonctionnaient pas sur les tablettes ni les téléphones jusqu'ici. Par la suite, les piles de notifications seront appelées "groupes".

Android 7.0, niveau d'API 24

  • Les modèles de notifications ont été redéfinis pour mettre en avant l'image principale et l'avatar.
  • Trois modèles de notifications ont été ajoutés : un pour les applications de messagerie et deux pour intégrer la fonctionnalité Développer aux vues de contenu personnalisées, entre autres options du système.
  • Les groupes de notifications sont compatibles avec les appareils portables (téléphones et tablettes). Cette fonctionnalité utilise la même API que les piles de notifications Android Wear (désormais appelé Wear OS) ajoutées sous Android 5.0 (niveau d'API 21).
  • Les utilisateurs peuvent répondre directement dans une notification (ils ont la possibilité de saisir du texte qui sera ensuite acheminé vers l'application parente de la notification) à l'aide de la réponse intégrée.

Android 8.0, niveau d'API 26

  • Les notifications individuelles doivent maintenant être placées dans un canal spécifique.
  • Les utilisateurs peuvent désormais désactiver les notifications par canal, au lieu de désactiver toutes les notifications d'une application.
  • Les applications comportant des notifications actives affichent un "badge" de notification en haut de l'icône de leur application sur l'écran d'accueil/du Lanceur d'applications.
  • Les utilisateurs peuvent à présent répéter une notification dans le panneau des notifications. Vous pouvez définir un délai d'expiration automatique pour une notification.
  • Vous pouvez également définir la couleur d'arrière-plan de la notification.
  • Certaines API concernant les comportements de notification sont passées de Notification à NotificationChannel. Par exemple, utilisez NotificationChannel.setImportance() au lieu de NotificationCompat.Builder.setPriority() pour Android 8.0 et versions ultérieures.