Créer une notification de mise à jour en direct

Le système favorise les notifications de mises à jour en temps réel. Les notifications promues s'affichent plus clairement sur les surfaces système, y compris en haut du panneau des 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 notification sponsorisées présentent les caractéristiques suivantes:

  • Agrandissement par défaut
  • Non réductible

Votre notification doit répondre aux exigences suivantes pour être considérée comme une mise à jour en direct:

  • Doit être défini sur "Standard/No Style" (Standard/Sans 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 une promotion à l'aide de EXTRA_REQUEST_PROMOTED_ONGOING ou de NotificationCompat.Builder#requestPromotedOngoing.
  • Doit être ongoing (définissez FLAG_ONGOING_EVENT).
  • contentTitle doit être défini.
  • Aucun customContentView ne doit être défini (pas de RemoteViews).
  • Ne doit PAS être le résumé d'un groupe à l'aide de setGroupSummary.
  • Le canal de notification ne doit PAS contenir 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 promue.
  • Notification.hasPromotableCharacteristics() vérifie si le système peut promouvoir la notification. Cette méthode ne tient pas compte du fait que l'utilisateur ait désactivé les mises à jour en direct pour l'application dans les paramètres.
  • NotificationManager.canPostPromotedNotifications() vérifie si votre application peut publier une notification promotionnelle, 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 actualités 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é s'est produite dans le passé, n'utilisez pas de mise à jour en temps réel. Utilisez plutôt une notification standard. Cela est également vrai pour les événements qui n'ont pas encore commencé, bien que les événements 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 temps réel pour offrir un accès accéléré aux fonctionnalités de l'application. Pour ce faire, utilisez un widget d'application ou un bloc "Réglages rapides" personnalisé.

  • Cas d'utilisation appropriés:navigation active, appels téléphoniques en cours, suivi actif des trajets en covoiturage et suivi actif des livraisons de repas.
  • Utilisations inappropriées:annonces, promotions, messages de chat, alertes, événements à venir dans le calendrier et accès rapide aux fonctionnalités de l'application.

Lancé par l'utilisateur

La plupart des informations en direct doivent représenter des activités déclenchées explicitement par l'utilisateur, comme le démarrage d'un entraînement, le démarrage de la navigation en voiture ou l'appel d'un covoiturage. N'affichez pas d'informations ambiantes, telles que celles sur l'environnement, les centres d'intérêt ou les événements à venir de l'utilisateur, dans une mise à jour en temps réel. 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 lance une activité dans un certain temps. Par exemple, si l'utilisateur achète des billets pour un vol ou un concert, s'inscrit à un tournoi ou indique autrement qu'il assistera à un événement à durée limitée. Dans ce cas, il peut être approprié d'afficher automatiquement une mise à jour en direct au début de l'événement planifié. Toutefois, les applications doivent régler leurs déclencheurs pour qu'ils ne s'affichent que lorsque l'activité est imminente. Si l'utilisateur indique explicitement qu'il souhaite commencer à surveiller un événement en arrière-plan, comme un match de sport, 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, lorsque l'utilisateur bénéficie d'un avantage significatif en jetant un coup d'œil sur la mise à jour en direct pour surveiller l'évolution de l'état de l'activité.

Une mise à jour en direct est souvent appropriée pour les activités qui passent d'une mise à jour en direct à des 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 temps réel que lorsque l'utilisateur a un besoin urgent, par exemple lorsqu'il est arrivé à l'aéroport ou au lieu de l'événement, ou une fois l'embarquement commencé. En revanche, une mise à jour en direct n'est pas adaptée au suivi d'un package, 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 d'état importantes concernant 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 l'heure
Figure 3 Utilisez Notification.Builder#setShortCriticalText pour afficher l'heure absolue.
chip d'état avec info
Figure 4. Utilisez Notification.Builder#setShortCriticalText pour transmettre des informations critiques.

Quand le temps

La date et l'heure de la notification déclenchent un compte à rebours pour la durée de vie de la notification, sauf si la notification est ignorée ou mise à jour.

  • L'heure de début est postérieure à l'heure actuelle d'au moins deux minutes : si l'heure actuelle est 10h05 et que l'heure de début est définie sur 10h10, le chip indiquera "5 min".
  • Si l'heure de la notification est antérieure de plus d'une minute, la notification ne s'affiche pas.
  • Utilisez setShowWhen à FALSE si vous ne souhaitez pas que la notification affichée dans le volet des notifications comporte une heure.

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. Afficher 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, affichez autant de texte que possible.

Dismissal

Les utilisateurs peuvent contrôler l'affichage des notifications dans le volet des notifications. La publication d'infos en direct indésirables peut entraîner la révocation de l'autorisation de publication d'une application par les utilisateurs.

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