Notifications sur Android Automotive OS

Les notifications fournissent aux conducteurs des informations courtes et opportunes sur les événements de votre application lorsqu'elle n'est pas utilisée. Les notifications peuvent apparaître dans le Centre de notifications et certaines notifications peuvent également apparaître sous forme de notifications prioritaires à l'écran. Utilisez la même API NotificationBuilder que sur les autres appareils afin de créer des notifications pour Android Automotive OS. Toutefois, pour assurer la sécurité des conducteurs et minimiser les distractions, certaines méthodes et classes d'API sont limitées ou se comportent différemment.

Différences entre les notifications des voitures

Pour créer un environnement de conduite sûr et sans distractions, les notifications sur Android Automotive OS diffèrent des notifications sur d'autres appareils de la manière suivante :

  • Interactions avec les utilisateurs simplifiées
  • Restrictions de l'expérience utilisateur en fonction de l'état de conduite

Interactions avec les utilisateurs simplifiées

Pour que les conducteurs puissent se concentrer sur la route, les notifications dans la voiture suivent un modèle d'interaction utilisateur simplifié proposant les caractéristiques suivantes:

Aucune commande complexe
Les notifications n'autorisent pas les commandes complexes, telles que l'appui pour développer une notification, l'appui prolongé sur une notification pour afficher des options supplémentaires ou l'utilisation de commandes basées sur des gestes de balayage.
Sons des notifications
Les notifications n'émettent un son que si elles déclenchent une notification prioritaire.
Boutons de lecture et de désactivation du son automatiques pour les notifications de messagerie

Android Automotive OS ajoute automatiquement des boutons Lecture et Couper le son à toutes les notifications de messagerie compatibles avec la voiture.

  • Lecture:lit la notification au conducteur à l'aide de l'assistant numérique par défaut de l'utilisateur, tel que l'Assistant Google, ou du système de synthèse vocale par défaut du véhicule.
  • Ignorer:empêche l'affichage de notifications prioritaires pour les futurs messages de la conversation pendant le reste du trajet. Les notifications de messages provenant d'une conversation dont le son est désactivé continuent d'apparaître dans le Centre de notifications. Le conducteur peut également réactiver le son de la conversation depuis le Centre de notifications.

Options d'affichage des notifications simplifiées

RemoteViews et les affichages de contenu personnalisés ne sont pas pris en charge. De plus, les styles de notification suivants ne sont pas pris en charge :

  • BigPictureStyle
  • BigTextStyle
  • InboxStyle

Si votre application envoie une notification à Android Automotive OS à l'aide de l'un de ces styles de notification, seul le texte récapitulatif est affiché.

Gestion du canal de notification simplifiée

Android Automotive OS n'est pas compatible avec les canaux de notification et les interfaces utilisateur associées, afin de réduire la prévalence des tâches de gestion enrichies sur les appareils automobiles.

Restrictions de l'expérience utilisateur en fonction de l'état de conduite

Android Automotive OS comprend un moteur de restrictions de l'expérience utilisateur. Les constructeurs automobiles peuvent utiliser ce moteur pour limiter les notifications en fonction de l'état de conduite de la voiture de différentes manières :

  • Tronquer les chaînes de notification comportant une longueur de caractère spécifique
  • Masquer les résumés des messages pour les notifications CATEGORY_MESSAGE
  • Limiter le nombre de notifications affichées par le Centre de notifications

Types de ressources pris en charge

Par défaut, Android Automotive OS ne prend en charge qu'un sous-ensemble limité de types de ressources pouvant être utilisés pour les notifications sur d'autres appareils. Ce sous-ensemble comprend les types de ressources suivants :

  • Drawables
  • Icônes
  • Images

Exigences de compatibilité pour les notifications de messagerie

Pour fournir une expérience utilisateur cohérente et minimiser les distractions, les notifications de messagerie sont soumises à des exigences particulières sur Android Automotive OS.

Une notification de messagerie est compatible avec la voiture si elle répond aux exigences suivantes :

  • Elle appartient à la catégorie CATEGORY_MESSAGE.
  • Elle utilise le style Notification.MessagingStyle.
  • Il n'inclut que les messages non lus.
  • Elle dispose d'un Action "Marquer comme lu" qui répond aux exigences suivantes:

  • Si la notification comporte une Action de réponse, l'Action répond aux exigences suivantes :

    • L'action sémantique est définie sur Action.SEMANTIC_ACTION_REPLY.
    • Action indique qu'il n'affiche aucune interface utilisateur lors de son déclenchement.
    • Action contient un seul RemoteInput.

Centre de notifications

Presque toutes les notifications apparaissent dans le Centre de notifications, même si elles ont également été générées en tant que notifications prioritaires. Les notifications sont conservées dans le Centre de notifications pendant toute la durée d'un trajet.

Les conducteurs peuvent interagir avec les notifications dans le Centre de notifications. En fonction du constructeur automobile, les conducteurs peuvent accéder au Centre de notifications de l'une ou des deux manières suivantes :

  • En balayant l'écran de haut en bas, comme pour le panneau des notifications sur d'autres appareils.
  • Appui sur un bouton dans l'interface système.

Notifications groupées

Les notifications associées sont automatiquement regroupées dans le Centre de notifications, comme dans le panneau des notifications sur d'autres appareils. Toutefois, lorsqu'un conducteur appuie sur le résumé d'un groupe dans le Centre de notifications, au lieu de lancer un PendingIntent, le groupe se développe pour afficher l'ensemble des notifications.

Notifications n'apparaissant pas dans le Centre de notifications

Les notifications suivantes n'apparaissent pas dans le Centre de notifications :

  • Media playback. Les informations sur la lecture de contenus multimédias en cours sont collectées par Android Automotive OS et affichées à un endroit dédié dans l'interface utilisateur. Notez que setMediaSession doit être appelé avec un jeton non nul pour que la notification soit reconnue comme lecture de contenus multimédias.
  • Les notifications de navigation détaillée pour CATEGORY_NAVIGATION.
  • Les notifications de service de premier plan pour les applications privilégiées du système et les applications signées avec la clé de plate-forme dont le niveau d'importance est inférieur à IMPORTANCE_DEFAULT.

Notifications prioritaires

Les notifications prioritaires s'affichent sous forme de carte de notification en haut de l'écran. Étant donné qu'une notification prioritaire attire l'attention du conducteur, ne déclenchez une notification prioritaire que lorsque les informations sont critiques pour la conduite, urgentes et exploitables. Seules certaines catégories de notifications peuvent générer une notification prioritaire.

Les constructeurs automobiles peuvent choisir d'autoriser ou non l'affichage de notifications prioritaires lorsque le Centre de notifications est ouvert.

Méthode de génération de notifications prioritaires des applications

Les applications ont des exigences différentes pour déclencher une notification prioritaire selon qu'elles disposent ou non de droits système.

Les applications privilégiées du système et signées avec la clé de plate-forme
L'application peut générer une notification prioritaire en définissant l'importance du canal de notification sur IMPORTANCE_HIGH ou une valeur supérieure.
Toutes les autres applications

L'application peut déclencher une notification prioritaire en définissant l'importance du canal de notification sur IMPORTANCE_HIGH ou une valeur supérieure et en s'assurant que la notification appartient à l'une des catégories suivantes:

Cycle de vie d'une notification prioritaire

Lorsqu'une application génère une notification prioritaire, la notification apparaît immédiatement sur l'écran de la voiture. En l'absence d'action du conducteur, la notification prioritaire se ferme automatiquement au bout de huit secondes, sauf dans les cas suivants:

  • Les notifications prioritaires pour certains appels entrants ne peuvent pas être ignorées, et elles restent jusqu'à ce que le conducteur accepte l'appel ou que celui-ci soit interrompu. Pour être qualifiée de notification prioritaire impossible à ignorer pour un appel entrant, une notification doit répondre aux exigences suivantes :

  • Les notifications prioritaires restent actives si une application met à jour la notification dans le délai de huit secondes.

Lorsqu'une notification prioritaire est ignorée, elle est répertoriée dans le Centre de notifications, sauf s'il s'agit d'une notification CATEGORY_NAVIGATION.

Modifications et restrictions de l'API Notification pour les voitures

Cette section récapitule les différences pour chaque classe dans laquelle l'API Notifications se comporte différemment ou présente des restrictions pour Android Automotive OS.

"Notification.Builder"

Les tableaux 1 et 2 décrivent les modifications et restrictions de l'API dans la classe Notification.Builder.

Tableau 1. Modifications des méthodes publiques pour Notification.Builder

Méthodes publiques Effet Description

addAction()

Opération no-op conditionnelle Les notifications Notification.MessagingStyle doivent ajouter les actions spécifiées dans les exigences de compatibilité. Les autres actions ajoutées ne seront pas affichées sous forme de boutons de notification.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

Opération no-op RemoteViews et les affichages de contenu personnalisés ne sont pas pris en charge.

setBadgeIconType()

setNumber()

Opération no-op Les badges de notification ne sont pas pris en charge.

setChronometerCountDown()

setUsesChronometer()

Opération no-op Les retardateurs ne sont pas pris en charge.
setColorized() Modification des contraintes

Applications signées par une plate-forme: configurables et autorisées par défaut.

Applications privilégiées du système: configurées par la plate-forme et non autorisées par défaut.

Toutes les autres applications: configurée par plate-forme et non autorisée par défaut.

setFullScreenIntent() Modification du comportement Ne lance pas automatiquement l'intent.
setLargeIcon() Modification du comportement Les grandes icônes sont affichées à droite de la notification.
setLights() Opération no-op Les appareils Android Automotive OS ne sont pas équipés de voyants LED.
setOngoing() Modification du comportement

Le comportement est différent lorsque la notification déclenche également une notification prioritaire.

setOngoing() ne permet d'ignorer la notification prioritaire que si elle concerne un appel entrant. Pour être considérée comme une notification prioritaire impossible à ignorer pour un appel entrant, une notification doit exécuter setPublicVersion()

setVisibility()

Opération no-op Le mode privé n'est pas pris en charge.
setSettingsText() Opération no-op Les notifications ne prennent pas en charge les affordances associées aux paramètres de l'application. À la place, les conducteurs accèdent aux paramètres de l'application via l'application.
setTicker() Opération no-op Le texte du bandeau n'est pas pris en charge.

Tableau 2. Modifications des classes imbriquées pour Notification.Builder

Classes imbriquées Effet Description

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

Non utilisé Seul un texte récapitulatif s'affiche. Les notifications détaillées de ces styles ne sont pas prises en charge.
Notification.BubbleMetadata Non utilisé Les bulles ne sont pas prises en charge.
Notification.MediaStyle Masqué Les notifications avec ce style sont masquées. Android Automotive OS gère les interactions de l'interface utilisateur pour les notifications et la lecture des contenus multimédias.
Notification.MessagingStyle Modification du comportement

Les notifications avec ce style présentent les différences suivantes :

Notification.CarExtender

Notification.WearableExtender

Non utilisé Les répéteurs ne sont pas pris en charge.

"Notification.Action.Builder"

Le tableau 3 décrit les modifications et les restrictions de l'API dans la classe Notification.Action.Builder.

Tableau 3. Modifications des méthodes publiques pour Notification.Action.Builder

Méthodes publiques Effet Description
Constructeurs publics Modification du comportement Les icônes spécifiées dans les constructeurs publics sont ignorées.
addRemoteInput Modification du comportement Pour limiter les distractions du conducteur, un assistant numérique, tel que l'Assistant Google, insère la réponse à un message à l'attention de l'utilisateur. Les utilisateurs ne peuvent pas saisir de messages.
setAllowGeneratedReplies Opération no-op La fonctionnalité Réponse suggérée n'est pas prise en charge.