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. Les utilisateurs peuvent 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. Pour commencer à créer des notifications, consultez Créer une notification.

Pour en savoir plus sur la conception des notifications et les modèles d'interaction, consultez le guide de conception des notifications.

Affichage des notifications sur un appareil

Les notifications apparaissent automatiquement à différents endroits et sous différents formats. Une notification s'affiche sous la forme d'une icône dans la barre d'état, d'un élément plus détaillé dans le panneau des notifications et d'un badge sur l'icône de l'application. Les notifications s'affichent également 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. À partir d'Android 13, cette vue agrandie inclut un bouton permettant aux utilisateurs d'arrêter une application qui dispose de services de premier plan en cours.

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

Notification prioritaire

Sous Android 5.0 et versions ultérieures, les notifications peuvent apparaître brièvement dans une fenêtre flottante appelée notification prioritaire. 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. Une notification prioritaire s'affiche devant l'application au premier plan.

La notification prioritaire s'affiche lorsque votre application émet la notification. Elle 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 notifications prioritaires:

  • L'activité de l'utilisateur est en mode plein écran, par exemple lorsque 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 notification est d'importance élevée sur les 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 si les notifications publiées par votre application s'affichent sur un écran de verrouillage sécurisé et, le cas échéant, le niveau de détail visible.

Les utilisateurs peuvent modifier les paramètres système pour choisir le niveau de détail visible dans les notifications sur l'écran de verrouillage ou pour désactiver toutes les notifications sur l'écran de verrouillage. À partir d'Android 8.0, les utilisateurs peuvent désactiver ou 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é point de notification) sur l'icône de lanceur d'applications 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 Modifier un badge 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 améliorer l'expérience utilisateur en personnalisant l'apparence de vos notifications 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, comme suit:

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

Nous vous recommandons vivement d'utiliser des modèles système pour assurer une compatibilité de conception correcte sur tous les appareils. Si nécessaire, vous pouvez créer une mise en page de notification personnalisée.

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, il est recommandé que chaque notification ouvre une activité appropriée 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 8.

Figure 8. Une notification avec des boutons d'action

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

À partir d'Android 10 (niveau d'API 29), la plate-forme peut générer automatiquement des boutons d'action avec des suggestions d'actions basées sur des intents.

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

Exiger un appareil déverrouillé

Les utilisateurs peuvent voir des actions de notification sur l'écran de verrouillage de l'appareil. Si une action de notification entraîne le lancement d'une activité ou l'envoi d'une réponse directe par une application, les utilisateurs doivent déverrouiller l'appareil avant que l'application puisse appeler cette action de notification.

Sur Android 12 (niveau d'API 31) ou version ultérieure, vous pouvez configurer une action de notification de sorte que l'appareil doit être déverrouillé pour que votre application puisse appeler cette action, quel que soit le workflow qu'elle lance. Cette option ajoute un niveau de sécurité supplémentaire aux notifications sur les appareils verrouillés.

Pour exiger que l'appareil soit déverrouillé avant que votre application n'appelle une action de notification donnée, transmettez true à setAuthenticationRequired() lorsque vous créez votre action de notification, comme indiqué dans l'extrait de code suivant:

Kotlin

val moreSecureNotification = Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Java

Notification moreSecureNotification = new Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build();

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 9.

Figure 9. 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.

Mises à jour et groupes de notifications

Pour éviter d'inonder vos utilisateurs de notifications trop nombreuses ou redondantes lorsque plusieurs nouveaux éléments sont disponibles, modifiez une notification existante plutôt que d'en émettre une nouvelle ou utilisez la 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 développer progressivement le groupe de notifications et chacune des notifications qu'il contient pour en savoir plus, comme illustré à la figure 10.

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. Cela permet aux utilisateurs de désactiver des canaux de notification spécifiques pour votre application au lieu de désactiver toutes vos notifications. Les utilisateurs peuvent contrôler les options visuelles et sonores de chaque canal dans les paramètres système Android, comme illustré dans la 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 équipés d'Android 7.1 (niveau d'API 25) ou version antérieure, les utilisateurs ne peuvent gérer les notifications que par application. Chaque application ne dispose effectivement que d'un seul canal sur 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 des canaux distincts pour chaque type de notification qu'elle émet. 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. Ce processus est décrit dans la section suivante.

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 elle peut être interruptive.

Sous Android 7.1 (niveau d'API 25) et versions antérieures, l'importance d'une notification est déterminée par son priority.

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 est publiée. Les utilisateurs peuvent modifier l'importance d'un canal de notification dans les paramètres système, comme illustré dans la figure 12.

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

Les niveaux d'importance possibles et les comportements de notification associés sont les suivants:

  • Urgence: émet un signal sonore et s'affiche sous la forme d'une notification prioritaire

  • Importance élevée: émet un signal sonore.

  • Importance moyenne: pas de signal sonore

  • Faible: pas de son 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:

  • 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 filtrer en fonction de l'expéditeur ou de l'appelant, comme illustré à la 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 autoriser les notifications de retrait, de virement, ou les deux en mode prioritaire.

Sur les appareils équipés d'Android 7.1 (niveau d'API 25) ou version antérieure, les utilisateurs peuvent autoriser les notifications en fonction de l'application plutôt que du canal.

Pour configurer vos notifications pour ces paramètres utilisateur, vous devez définir une catégorie à l'échelle 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é de l'état de premier plan.

Pour en savoir plus, consultez la section Services de premier plan. Si vous concevez un lecteur multimédia, consultez également la section Lire des contenus multimédias en arrière-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

L'UI du système de notification Android et les API associées aux notifications évoluent de façon constante. Pour utiliser les dernières fonctionnalités de l'API de notification tout en prenant en charge les appareils plus anciens, utilisez l'API de notification de la bibliothèque d'assistance, NotificationCompat, et ses sous-classes, ainsi que NotificationManagerCompat. Cela vous évite 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. Toutefois, la disponibilité d'une méthode dans NotificationCompat ne garantit pas que la fonctionnalité correspondante est fournie sur les appareils plus anciens. Dans certains cas, l'appel d'une nouvelle API interrompt toute opération sur les appareils anciens.

Vous trouverez ci-dessous un résumé des principaux changements de comportement par niveau d'API pour les notifications Android.

Android 5.0, niveau d'API 21

  • Introduction des notifications sur l'écran de verrouillage et des notifications prioritaires.

  • Permet à l'utilisateur de mettre le téléphone en mode "Ne pas déranger" et de configurer les notifications autorisées à l'interrompre lorsque l'appareil est en mode "Prioritaires uniquement".

  • Ajoute des méthodes pour définir si une notification doit être affichée sur l'écran de verrouillage (par exemple, setVisibility()) et pour spécifier une version "publique" du texte de la notification.

  • Ajoute la méthode setPriority(), qui indique au système dans quelle mesure la notification est interruptive. Par exemple, si vous définissez la priorité sur "élevée", la notification s'affiche sous forme de notification prioritaire.

  • Ajout de la compatibilité avec les piles de notifications aux appareils Android Wear (désormais appelé Wear OS). Pour créer une pile de notifications, utilisez setGroup(). Les piles de notifications, appelées plus tard "groupes" ou "bundles", ne sont pas compatibles avec les tablettes ni les téléphones avant Android 7.0 (niveau d'API 24).

Android 7.0, niveau d'API 24

  • Redéfinit les modèles de notifications pour mettre en avant l'image principale et l'avatar.

  • Ajoute trois modèles de notifications: 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).

  • Permet aux utilisateurs de répondre dans une notification à l'aide de la réponse intégrée. Ils peuvent saisir du texte, qui est ensuite acheminé vers l'application parente de la notification.

Android 8.0, niveau d'API 26

  • Permet de placer les notifications individuelles dans un canal spécifique.

  • Permet aux utilisateurs de désactiver les notifications par chaîne, au lieu de désactiver toutes les notifications d'une application.

  • Permet aux applications comportant des notifications actives d'afficher un badge de notification au-dessus de leur icône sur l'écran d'accueil ou du lanceur d'applications.

  • Permet aux utilisateurs de répéter une notification dans le panneau des notifications. Vous pouvez définir un délai d'expiration automatique pour une notification.

  • Permet de définir la couleur d'arrière-plan de la notification.

  • Déplace certaines API concernant les comportements de notification de Notification vers NotificationChannel. Par exemple, utilisez NotificationChannel.setImportance() au lieu de NotificationCompat.Builder.setPriority() pour Android 8.0 ou version ultérieure.

Android 13.0, niveau d'API 33

Android 14.0, niveau d'API 34

  • Limite les notifications d'intent plein écran aux applications qui fournissent des appels et des alarmes. Utilisez l'API NotificationManager.canUseFullScreenIntent pour vérifier si votre application dispose de l'autorisation. Sinon, votre application peut utiliser ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT pour afficher la page des paramètres où les utilisateurs peuvent accorder l'autorisation.

  • Modifie la façon dont les utilisateurs gèrent les notifications qu'ils ne peuvent pas ignorer en leur permettant d'ignorer l'action de notification même lorsque l'indicateur Notification.FLAG_ONGOING_EVENT est défini. Cela ne s'applique pas aux notifications CallStyle si l'indicateur Notification.FLAG_ONGOING_EVENT est défini ou si le contrôleur de stratégie d'appareil (DPC) et les packages associés sont utilisés pour l'entreprise. Cela ne s'applique pas non plus lorsque le téléphone est verrouillé ou si l'utilisateur sélectionne Tout effacer.