Créer une notification de mise à jour en direct

Le système met en avant les notifications d'infos en direct. Les notifications mises en avant s'affichent de manière plus visible sur les surfaces système, y compris en haut du panneau de notifications et de l'écran de verrouillage, et sous forme de chip dans la barre d'état.

Figure 1. Exemple de notification de mise à jour en direct.

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

  • Développé par défaut
  • Non réductible

Pour être considérée comme une actualité en direct, votre notification doit répondre aux exigences suivantes :

  • Doit être défini sur "Standard/Aucun style", BigTextStyle, CallStyle ou ProgressStyle.
  • Vous devez demander l'autorisation non liée à l'exécution suivante dans le fichier manifeste Android : android.permission.POST_PROMOTED_NOTIFICATIONS.
  • Vous devez demander la promotion à l'aide de EXTRA_REQUEST_PROMOTED_ONGOING ou NotificationCompat.Builder#requestPromotedOngoing.
  • Doit être ongoing (définissez FLAG_ONGOING_EVENT).
  • Doit avoir un contentTitle défini.
  • Ne doit PAS avoir de customContentView défini (pas de RemoteViews).
  • Ne doit PAS être le résumé d'un groupe utilisant setGroupSummary.
  • Ne doit PAS setColorized sur TRUE.
  • Le canal de notification NE DOIT PAS avoir IMPORTANCE_MIN.

Caractéristiques de la promotion

Les API suivantes vous aident à déterminer si le système va promouvoir votre notification :

  • Notification.FLAG_PROMOTED_ONGOING indique si la notification est mise en avant.
  • Notification.hasPromotableCharacteristics() valide si le système peut promouvoir la notification. Cette méthode ne tient pas compte du fait que l'utilisateur ait désactivé ou non les mises à jour en direct pour l'application dans les paramètres.
  • NotificationManager.canPostPromotedNotifications() vérifie si votre application peut publier une notification sponsorisée, 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 mises à jour en direct pour les activités en cours, lancées par l'utilisateur et sensibles au temps.

En cours

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

Les infos en direct représentent des activités en cours. N'utilisez pas les mises à jour 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 des courses en VTC et suivi actif des livraisons de repas.
  • 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 direct doivent représenter des activités explicitement déclenchées par l'utilisateur, comme le démarrage d'un entraînement, le lancement d'une navigation en voiture ou la commande d'un trajet en VTC. 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 mise à jour en direct. N'autorisez pas les activités déclenchées par d'autres parties à générer des mises à jour en direct.

Parfois, un utilisateur peut effectuer une action qui déclenche une activité dans un avenir proche. Par exemple, si l'utilisateur achète des billets pour un vol ou un concert, s'inscrit à un tournoi ou indique qu'il participera à un événement limité dans le temps. Dans ce cas, il peut être approprié d'afficher automatiquement une info en direct lorsque l'événement planifié commence. 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 à suivre un événement en arrière-plan, comme un match sportif, vous pouvez commencer à publier des mises à jour en direct pour cet événement. Toutefois, vous devez également inclure une action Détacher dans la notification associée.

Urgent

N'affichez une mise à jour en direct que si elle nécessite l'attention de l'utilisateur tout au long de l'activité. La surveillance est un cas d'utilisation clé des mises à jour en direct. L'utilisateur tire un avantage considérable à jeter un coup d'œil à la mise à jour en direct pour suivre l'évolution de l'état de l'activité.

Une mise à jour en direct est souvent appropriée pour les activités qui passent des mises à jour 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 mise à jour 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 lorsque l'embarquement a commencé. En revanche, une mise à jour en direct n'est pas appropriée pour suivre un colis, car l'utilisateur n'a pas besoin de le surveiller en permanence.

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 importantes sur l'état de votre notification axée sur la progression.

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

Quand

L'heure "when" déclenche un compte à rebours pour la durée de la notification, sauf si elle est ignorée ou mise à jour.

  • L'heure "quand" est postérieure à l'heure actuelle d'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".
  • Si l'heure "quand" est antérieure de plus d'une minute, la notification ne s'affiche pas.
  • Utilisez setShowWhen pour FALSE si vous ne souhaitez pas que l'heure s'affiche dans le volet de la notification.

Apparence du chip d'état

Le chip d'état inclut toujours une icône et peut inclure du texte. La largeur maximale du chip est de 96 dp. Affichez le texte en fonction des critères suivants :

  • Si le texte comporte moins de sept caractères, affichez-le en entier.
  • Si moins de la moitié du texte s'affiche, n'affichez que l'icône.
  • Si plus de la moitié du texte s'affiche, montrez-en le plus possible.

Dismissal

Les utilisateurs peuvent contrôler la visibilité des notifications dans la barre de notifications. Si vous publiez des infos en direct indésirables, les utilisateurs peuvent révoquer l'autorisation de publication de votre application.

Pour empêcher les utilisateurs de désactiver complètement les infos en direct, évitez de publier des informations 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'application exemple pour tester ces API.