Créer des notifications de mise à jour en temps réel

Les infos en direct fournissent un résumé des mises à jour importantes afin que les utilisateurs puissent suivre leur progression sans ouvrir l'application. Le système met en avant les notifications d'infos en direct, mais les utilisateurs peuvent les ignorer ou les rétrograder temporairement en notifications standards. Les notifications mises en avant sont plus visibles sur les surfaces système, y compris en haut du panneau des notifications et de l'écran de verrouillage, ainsi que sous forme de chip dans la barre d'état. Les notifications d'infos en direct doivent respecter les principes de notification pour fournir des informations brèves, opportunes et pertinentes.

Figure 1. Exemple de notification d'infos en direct.

Les fiches de notification mises en avant présentent les caractéristiques suivantes :

  • Développées par défaut
  • Non réductibles

Pour être considérées comme des infos en direct, vos notifications doivent répondre aux exigences suivantes :

Caractéristiques de la mise en avant

Les API suivantes vous aident à déterminer si le système mettra en avant votre notification :

  • Notification.FLAG_PROMOTED_ONGOING indique si la notification est mise en avant.
  • Notification.hasPromotableCharacteristics() valide si le système peut mettre en avant la notification. Cette méthode ne tient pas compte du fait que l'utilisateur a désactivé les infos en direct pour l'application dans les paramètres.
  • NotificationManager.canPostPromotedNotifications() vérifie si votre application peut publier une notification mise en avant, par exemple si l'utilisateur l'a activée ou désactivée dans les paramètres.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS est l'action d'intent qui permet aux applications d'envoyer les utilisateurs vers les paramètres pour activer cette fonctionnalité.

Critères d'utilisation

Utilisez les infos en direct pour les activités en cours, lancées par l'utilisateur et urgentes.

Figure 2. Infos en direct sur votre écran d'accueil et écran de verrouillage, et sous forme de chip.

En cours

Une info en direct doit représenter une activité en cours, avec un début et une fin distincts. Si une activité a lieu dans le passé, n'utilisez pas d'info en direct. Utilisez plutôt une notification standard. Cela vaut également pour les événements qui n'ont pas encore commencé, bien que les événements qui sont sur le point de commencer puissent utiliser une info en direct.

Les infos en direct représentent des activités en cours. N'utilisez pas les infos en direct pour offrir un accès accéléré aux fonctionnalités de l'application. Si vous souhaitez le faire, utilisez un widget d'application ou un bloc "Réglages rapides" personnalisé.

  • Utilisations appropriées : navigation active, appels téléphoniques en cours, suivi actif de covoiturage et suivi actif de livraison de nourriture.
  • Utilisations inappropriées : annonces, promotions, messages de chat, alertes, événements à venir dans l'agenda et accès rapide aux fonctionnalités de l'application.

Lancé par l'utilisateur

La plupart des Mises à jour en temps réel doivent représenter des activités explicitement déclenchées par l'utilisateur, comme le démarrage d'un entraînement, le lancement de la navigation routière ou la commande d'un partage de course. N'affichez pas d'informations ambiantes, telles que celles concernant l'environnement, les centres d'intérêt ou les événements à venir de l'utilisateur, dans une info en direct. N'autorisez pas les activités déclenchées par d'autres parties à générer des infos en direct.

Parfois, un utilisateur peut effectuer une action qui lance une activité dans un certain délai. Par exemple, si l'utilisateur achète des billets pour un vol ou un concert, s'inscrit à un tournoi ou indique sa participation future à un événement urgent. Dans ce cas, il peut être approprié d'afficher automatiquement une info en direct au début de l'événement planifié. Toutefois, les applications doivent ajuster leurs déclencheurs pour qu'ils n'apparaissent que lorsque l'activité est imminente. Si l'utilisateur indique explicitement qu'il souhaite commencer à surveiller un événement en arrière-plan, tel qu'un match sportif, vous pouvez commencer à publier des infos en direct pour cet événement. Toutefois, vous devez également inclure une action Dépingler dans la notification associée.

Urgent

N'affichez une info en direct que si elle nécessite l'attention de l'utilisateur tout au long de l'activité. Un cas d'utilisation clé des infos en direct est la surveillance, lorsque l'utilisateur tire un avantage significatif du fait de jeter un coup d'œil à l'info en direct pour suivre l'évolution de l'état de l'activité.

Une info en direct est souvent appropriée pour les activités qui passent des infos en direct aux notifications normales. Par exemple, il est approprié d'afficher une notification de carte d'embarquement plusieurs heures avant le vol d'un utilisateur, mais la notification ne doit devenir une info en direct que lorsque l'utilisateur en a un besoin urgent, par exemple lorsqu'il est arrivé à l'aéroport ou sur le lieu de l'événement, ou une fois l'embarquement commencé. En revanche, une info en direct n'est pas appropriée pour suivre un colis, car l'utilisateur n'a pas besoin de le surveiller en permanence.

Pratiques UX

Utilisez l'icône de suivi pour visualiser l'état. Elle peut être mise à jour de manière dynamique.

Suivi personnalisé sur une barre de progression
Figure 3. Icône de suivi personnalisée.

Lorsqu'une heure d'arrivée prévue est en cours de calcul ou n'est pas encore disponible, n'affichez pas d'état vide. Fournissez un texte d'espace réservé actif, tel que "Réflexion..." ou "Redirection...", pour indiquer que le système fonctionne, comme illustré dans l'exemple.

État non vide pour montrer la réflexion
Figure 4. État non vide pour votre info en direct.

Chips d'état

Les chips d'état permettent aux utilisateurs de suivre les infos en direct lorsque la notification n'est pas visible. Utilisez setShortCriticalText ou setWhen pour transmettre des informations d'état importantes concernant votre notification axée sur la progression.

chip d'état avec icône
Figure 5. L'état indéterminé affiche la petite icône, Notification.Builder#setSmallIcon.
chip d'état avec heure
Figure 6. Utilisez Notification.Builder#setShortCriticalText pour afficher l'heure absolue.
Chip d'état avec des informations
Figure 7. Utilisez Notification.Builder#setShortCriticalText pour transmettre des informations critiques.

Quand

L'heure "Quand" déclenche un compte à rebours pour la durée de la notification, sauf si elle est ignorée ou mise à jour. Les puces suivantes décrivent le fonctionnement de l'heure "Quand" dans différentes situations :

  • L'heure "Quand" est dans au moins deux minutes : si l'heure actuelle est 10h05 et que l'heure "Quand" est définie sur 10h10, le chip indique 5 min.
  • L'heure "Quand" est dans le passé : le texte ne s'affiche pas.
  • Un minuteur peut s'afficher dans le chip lorsque vous utilisez Chronometer pour l'heure "Quand". Consultez setUsesChronometer et setChronometerCountdown. Le minuteur Chronometer s'affiche dans le chip tant qu'il est positif.
  • Vous ne voulez pas que l'heure "Quand" s'affiche dans votre notification : utilisez setShowWhen sur FALSE.

Apparence du chip d'état

Le chip d'état inclut toujours une icône et, éventuellement, du texte. La largeur maximale du chip est de 96 dp. Le texte ne s'affiche que s'il peut tenir entièrement dans le chip. Le texte s'affiche en fonction des critères suivants :

  • S'il comporte moins de sept caractères, affichez l'intégralité du texte.
  • Si moins de la moitié du texte s'affiche, n'affichez que l'icône.
  • Si plus de la moitié du texte s'affiche, affichez-en autant que possible.

Wear OS

Les infos en direct sont transférées vers certains appareils Wear OS connectés. Pour obtenir des conseils sur ce comportement de transfert, ainsi que sur la création d'infos en direct locales pour Wear OS, consultez le guide Infos en direct pour Wear OS.

Fermeture

Les utilisateurs peuvent contrôler la visibilité des notifications dans le panneau des notifications. La publication d'infos en direct indésirables peut inciter les utilisateurs à révoquer l'autorisation de publication d'une application.

Pour empêcher les utilisateurs de désactiver complètement les infos en direct, évitez de publier des mises à jour qu'ils pourraient ignorer. Ne republiez pas les infos en direct que l'utilisateur a ignorées. Utilisez setDeleteIntent pour détecter les mises à jour ignorées.

Consultez l'exemple d'application pour tester ces API.

Questions fréquentes

Question : Qu'est-ce que le point blanc à la fin de la barre de progression ?

Indicateur de visualisation de l'accessibilité de la fin de la progression
Figure 8. Visualisation de l'accessibilité à la fin du parcours

Réponse : Le point blanc à la fin de la barre de progression signale visuellement la fin de la barre de progression.

Question : Pourquoi les notifications personnalisées ne sont-elles pas compatibles avec les infos en direct ?

Réponse : Les notifications personnalisées rendent les tests et l'expérience utilisateur cohérents difficiles, car leur comportement diffère considérablement selon les versions d'Android et les fabricants d'appareils. Évitez les notifications personnalisées à l'aide de RemoteViews.