Présentation des notifications

Une notification est un message qu'Android affiche en dehors de l'interface utilisateur de votre application pour fournir à l'utilisateur des rappels, des communications d'autres personnes ou d'autres informations opportunes provenant de votre application. Les utilisateurs peuvent appuyer sur la notification pour ouvrir votre application ou effectuer une action directement depuis la notification.

Cette page présente l'emplacement des notifications et les fonctionnalités disponibles. Pour commencer à compiler 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 sont automatiquement présentées aux utilisateurs de différents lieux et dans différents formats. Une notification apparaît sous la forme d'une icône dans la barre d'état, d'une entrée plus détaillée 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 envoyez 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 apparaissent à gauche de la barre d'état.

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

Figure 2 Notifications dans le panneau des notifications.

Les utilisateurs peuvent faire glisser une notification du panneau vers le bas pour afficher la vue développée, qui affiche du contenu et des boutons d'action supplémentaires, le cas échéant. À partir d'Android 13, cette vue développée inclut un bouton qui permet aux utilisateurs d'arrêter une application qui possède des services de premier plan en cours d'exécution.

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

Notification prioritaire

À partir d'Android 5.0, les notifications peuvent apparaître brièvement dans une fenêtre flottante appelée notification prioritaire. Ce comportement est normalement utilisé pour les notifications importantes dont l'utilisateur doit être informé immédiatement, et il n'apparaît que si l'appareil est déverrouillé.

Figure 3. Une notification prioritaire s'affiche devant l'application au premier plan.

La notification prioritaire apparaît 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.

Les situations susceptibles de déclencher des notifications prioritaires sont les suivantes:

  • L'activité de l'utilisateur est en mode plein écran, par exemple lorsque l'application utilise fullScreenIntent.

  • La notification est hautement prioritaire et utilise des sonneries ou des vibrations sur les appareils équipés d'Android 7.1 (niveau d'API 25) ou version antérieure.

  • Le canal de notification est d'une importance élevée sur les appareils équipés d'Android 8.0 (niveau d'API 26) ou 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 définir de manière programmatique 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 utiliser 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

Dans les lanceurs d'applications compatibles sur les appareils équipés d'Android 8.0 (niveau d'API 26) ou version ultérieure, les icônes d'application indiquent les nouvelles notifications à l'aide d'un badge coloré, 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 qui lui sont associées. Ils peuvent les ignorer ou agir en fonction de ce menu, comme dans le panneau des notifications.

Figure 5 : Badges de notification et menu "Appuyer 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'y affichent automatiquement, y compris les détails à développer et les boutons d'action.

Vous pouvez améliorer l'expérience en personnalisant l'apparence de vos notifications sur les accessoires connectés et en fournissant différentes actions, y compris des suggestions de réponses et des réponses par saisie vocale. Pour en savoir plus, découvrez comment ajouter à votre notification des fonctionnalités spécifiques à l'accessoire connecté.

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

Anatomie d'une notification

La conception d'une notification est déterminée par les modèles système, et votre application définit le contenu de chaque partie du modèle. Certains détails de la notification n'apparaissent que dans la vue développée.

Figure 7. Une notification contenant des informations de base.

Les parties les plus courantes d'une notification sont indiquées 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. Horodatage: 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 des contacts. Ne l'utilisez pas pour l'icône de 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 appropriée 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 avec ces fonctionnalités et bien plus encore, consultez Créer une notification.

Actions de notification

Bien que cela ne soit 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 de notification par défaut, vous pouvez ajouter des boutons d'action qui effectuent une tâche liée à l'application à partir de la notification, souvent sans ouvrir d'activité, comme illustré 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 pour répondre aux messages ou saisir un autre texte directement à partir de la notification.

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

L'ajout de boutons d'action est expliqué plus en détail dans la section Créer une notification.

Exiger le déverrouillage d'un appareil

Les utilisateurs peuvent voir les 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 à une application, les utilisateurs doivent déverrouiller l'appareil pour 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 lancé par l'action. Cette option ajoute un niveau de sécurité supplémentaire aux notifications sur les appareils verrouillés.

Pour exiger le déverrouillage d'un appareil avant que votre application n'appelle une action de notification donnée, transmettez true à setAuthenticationRequired() lors de la création de 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 grande qui pourra être développée en appliquant un modèle supplémentaire, comme illustré dans la figure 9.

Figure 9. Notification à développer pour les textes de grande taille

Vous pouvez également créer une notification à développer avec une image, une boîte de réception, une conversation par chat ou des commandes de lecture multimédia. Pour en savoir plus, consultez Créer une notification à développer.

Mises à jour et groupes de notifications

Pour éviter d'inonder vos utilisateurs de notifications multiples ou redondantes lorsque vous avez des informations supplémentaires, mettez à jour 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 mises à jour de la conversation.

Toutefois, si vous devez envoyer plusieurs notifications, envisagez de les regrouper dans un groupe disponible sur Android 7.0 et versions ultérieures.

Un groupe de notifications vous permet de réduire 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 obtenir plus de détails, comme le montre la figure 10.

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

Pour savoir comment ajouter des notifications à un groupe, consultez Créer un groupe de notifications.

Canaux de notification

À partir d'Android 8.0 (niveau d'API 26), toutes les notifications doivent être attribuées à un canal. Sinon, 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 auditives de chaque canal à partir des 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 pour chaque application. Chaque application ne dispose que d'un seul canal sur Android 7.1 ou version antérieure.

Figure 11 Paramètres de notification de l'application Horloge et de l'un de ses canaux.

Une application peut avoir des canaux distincts pour chaque type de notification émis par l'application. Une application peut également créer des canaux de notification en réponse aux choix effectués par les utilisateurs. Par exemple, vous pouvez configurer des canaux de notification distincts pour chaque groupe de conversation créé par un utilisateur dans une application de chat.

C'est également au niveau du canal que vous spécifiez le niveau d'importance de vos notifications sur Android 8.0 et versions ultérieures. Ainsi, toutes les notifications publiées sur le même canal de notification auront le même comportement. Cette opération est décrite dans la section suivante.

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

Importance d'une notification

Android se base sur l'importance d'une notification pour déterminer le degré d'interruption visuelle et sonore de l'utilisateur. Plus l'importance d'une notification est élevée, plus elle est intrusive.

Sur Android 7.1 (niveau d'API 25) ou version antérieure, l'importance d'une notification est déterminée par le paramètre priority de la notification.

Sur Android 8.0 (niveau d'API 26) ou version ultérieure, l'importance d'une notification est déterminée par le 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 sur Android 8.0 ou version ultérieure.

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

  • Urgent: émet un son et apparaît sous la forme d'une notification prioritaire.

  • Élevé: émet un son.

  • Moyen: n'émet aucun son.

  • Faible: n'émet aucun son et n'apparaît 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'interrompent pas l'utilisateur, par exemple dans le panneau des notifications et sous la forme d'un badge sur l'icône de lanceur. Toutefois, vous pouvez modifier l'apparence du badge de notification.

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

Mode Ne pas déranger

À partir d'Android 5.0 (niveau d'API 21), les utilisateurs peuvent activer le mode Ne pas déranger, qui coupe les sons et les vibrations pour toutes les notifications. Les notifications apparaissent toujours dans l'interface utilisateur du système comme d'habitude, sauf indication contraire de l'utilisateur.

Trois niveaux sont disponibles en mode Ne pas déranger:

  • Silence total: bloque tous les sons et 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.
  • Prioritaire uniquement: les utilisateurs peuvent configurer les catégories du système qui 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 appliquer un filtre en fonction de l'expéditeur ou de l'appelant, comme illustré dans 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).

Sur Android 8.0 (niveau d'API 26) ou version ultérieure, les utilisateurs peuvent également autoriser les notifications via des catégories spécifiques à 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 liées aux retraits et aux dépôts. L'utilisateur peut autoriser les notifications de retrait et de dépôt, 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 application par application plutôt que canal par 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 exécuté en arrière-plan qui est durable et visible par l'utilisateur, comme un lecteur multimédia. Vous ne pouvez pas ignorer cette notification, comme les autres notifications. Pour supprimer la notification, le service doit être arrêté ou supprimé de l'état de premier plan.

Pour en savoir plus, consultez la section Services de premier plan. Si vous créez un lecteur multimédia, consultez également la section Lire des contenus multimédias en arrière-plan.

Limites de posts

À partir d'Android 8.1 (niveau d'API 27), les applications ne peuvent pas émettre un son de notification 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 émet un son.

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

Compatibilité des notifications

L'UI du système de notification Android et les API liées aux notifications évoluent constamment. Pour utiliser les dernières fonctionnalités de l'API de notification tout en prenant en charge des appareils plus anciens, utilisez l'API de notification de la bibliothèque Support, NotificationCompat et ses sous-classes, ainsi que NotificationManagerCompat. Cela vous permet d'éviter d'écrire du code conditionnel pour vérifier les niveaux d'API, car ces API le gèrent.

NotificationCompat est mis à jour à mesure que la plate-forme évolue 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 des appareils plus anciens. Dans certains cas, l'appel d'une nouvelle API entraîne une interruption no-op sur les appareils plus anciens.

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

Android 5.0, niveau d'API 21

  • Introduit l'écran de verrouillage et les notifications prioritaires.

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

  • Ajout de méthodes permettant de définir si une notification doit s'afficher ou non sur l'écran de verrouillage, comme setVisibility(), et de spécifier une version "publique" du texte de la notification.

  • Ajout de la méthode setPriority(), qui indique au système à quel point la notification peut être intrusive. Par exemple, si vous définissez une priorité élevée, la notification apparaît sous forme de notification prioritaire.

  • Ajout de la prise en charge des piles de notifications sur les appareils Android Wear (désormais appelés Wear OS). Pour placer les notifications dans une pile à l'aide de setGroup(). Les piles de notifications, appelées plus tard "groupe" ou "bundle", ne sont pas compatibles avec les tablettes et les téléphones avant Android 7.0 (niveau d'API 24).

Android 7.0, niveau d'API 24

  • Modification du style des modèles de notification pour mettre l'accent sur l'image héros et l'avatar.

  • Ajout de trois modèles de notification: un pour les applications de chat et les deux autres pour décorer les vues de contenu personnalisées avec l' affordance extensible et d'autres décorations système.

  • Ajout de la prise en charge des appareils portables, tels que les téléphones et les tablettes, pour les groupes de notifications. Utilise la même API que les piles de notification Android Wear (désormais appelées Wear OS) introduites dans 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

  • Fait en sorte que les notifications individuelles soient placées dans un canal spécifique.

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

  • Permet aux applications qui contiennent des notifications actives d'afficher un badge de notification en haut de l'icône de leur application sur l'écran d'accueil ou du lanceur d'applications.

  • Permet aux utilisateurs de répéter une notification depuis le panneau. Vous pouvez définir un délai 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

  • Ajout d'une autorisation d'exécution Pour que votre application puisse envoyer des notifications de type non exempté, l'utilisateur doit accorder cette autorisation à votre application.

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 des autorisations nécessaires. Si ce n'est pas le cas, votre application peut utiliser ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT pour lancer la page de paramètres où les utilisateurs peuvent accorder l'autorisation.

  • Modifie la façon dont les utilisateurs voient 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'option Notification.FLAG_ONGOING_EVENT est définie, ni aux outils de contrôle des règles relatives aux appareils (DPC) et aux packages compatibles pour les entreprises. Cela ne s'applique pas non plus lorsque le téléphone est verrouillé ou si l'utilisateur sélectionne Tout effacer.