Las notificaciones les proporcionan a los conductores información breve y oportuna sobre eventos de tu app cuando no está en uso. Esas notificaciones pueden aparecer en el Centro de notificaciones. Otras también pueden mostrarse como notificaciones emergentes en la pantalla. Si quieres crear notificaciones para el SO Android Automotive, debes usar la misma API de NotificationBuilder
que usas para otros dispositivos. Sin embargo, para garantizar la seguridad de los conductores y minimizar las distracciones, algunas clases y métodos de la API están restringidos o se comportan de manera diferente.
Cómo difieren las notificaciones en automóviles
A los efectos de crear un entorno de conducción seguro y libre de distracciones, las notificaciones del SO Android Automotive son distintas de las de otros dispositivos. Las diferencias son las siguientes:
- Interacción del usuario simplificada
- Restricciones de UX según el estado de conducción
Interacción del usuario simplificada
Para garantizar que los conductores puedan concentrarse en la carretera, las notificaciones en el automóvil tienen un modelo de interacción simplificado con las siguientes características:
- Ausencia de controles complejos
- Las notificaciones no aceptan controles complejos, como presionar para expandir una notificación, mantener presionada una notificación para ver opciones adicionales o usar controles basados en gestos de longitud de deslizamiento.
- Sonidos de notificaciones
- Las notificaciones solo emiten un sonido si activan una notificación de atención.
El SO Android Automotive agrega automáticamente los botones Reproducir y Silenciar a todas las notificaciones de mensajes compatibles con vehículos.
- Reproducir: Lee la notificación al conductor mediante el asistente digital predeterminado del usuario (como Asistente de Google) o el sistema de texto a voz predeterminado del vehículo.
Silenciar: Evita que aparezcan notificaciones de atención de los próximos mensajes en la conversación durante el resto del viaje. Las notificaciones de mensajes de una conversación silenciada aparecerán en el Centro de notificaciones, desde el cual el conductor podrá a su vez activar el sonido de la conversación.
- Opciones simplificadas de visualización de notificaciones
No se admiten
RemoteViews
ni vistas de contenido personalizado. Además, tampoco se admiten los siguientes estilos de notificaciones:BigPictureStyle
BigTextStyle
InboxStyle
Si tu app envía una notificación al SO Android Automotive usando uno de estos estilos de notificaciones, solo se mostrará el texto de resumen.
- Administración simplificada del canal de notificaciones
El SO Android Automotive no es compatible con los canales de notificaciones ni con las condiciones relacionadas de la IU para reducir la prevalencia de las tareas enriquecidas de administración en dispositivos de Automotive.
Restricciones de UX según el estado de conducción
El SO Android Automotive incluye un motor de restricciones de UX. Los fabricantes de automóviles pueden usar este motor para restringir las notificaciones según el estado de conducción del automóvil de las siguientes maneras:
- Truncar las strings de notificaciones según una longitud de caracteres específica
- Ocultar resúmenes de mensajes para las notificaciones de
CATEGORY_MESSAGE
- Limitar el número de notificaciones que puede mostrar el Centro de notificaciones
Tipos de recursos admitidos
De manera predeterminada, el SO Android Automotive admite un subconjunto limitado de tipos de recursos que se pueden usar para notificaciones en otros dispositivos. Este subconjunto incluye los siguientes tipos de recursos:
- Elementos de diseño
- Íconos
- Imágenes
Requisitos de compatibilidad para las notificaciones de mensajes
Para proporcionar una experiencia del usuario coherente y con distracciones mínimas, las notificaciones de mensajes tienen requisitos especiales en el SO Android Automotive.
Las notificaciones de mensajería serán compatibles con vehículos si cumplen los siguientes requisitos:
- Pertenecen a la categoría
CATEGORY_MESSAGE
. - Usan el estilo
Notification.MessagingStyle
. - Solo incluyen mensajes no leídos.
Tienen una
Action
de marcado como leído que cumple los siguientes requisitos:- La acción semántica se establece en
Action.SEMANTIC_ACTION_MARK_AS_READ
. - La
Action
indica que no muestra interfaces de usuario cuando se activa.
- La acción semántica se establece en
Si la notificación tiene una
Action
de respuesta, entonces laAction
cumple los siguientes requisitos:- La acción semántica se establece en
Action.SEMANTIC_ACTION_REPLY
. - La
Action
indica que no muestra interfaces de usuario cuando se activa. - La
Action
contiene una únicaRemoteInput
.
- La acción semántica se establece en
Centro de notificaciones
Casi todas las notificaciones se muestran en el Centro de notificaciones, incluso si se activaron como notificaciones emergentes. Esas notificaciones persisten en el Centro de notificaciones mientras dura un viaje.
Los conductores pueden interactuar con las notificaciones en el Centro de notificaciones. Según el fabricante del automóvil, los conductores podrán acceder al Centro de notificaciones de una de las siguientes maneras:
- Deslizando el dedo hacia abajo desde la parte superior de la pantalla (similar al panel lateral de notificaciones en otros dispositivos)
- Presionando un botón en la interfaz del sistema
Notificaciones agrupadas
Las notificaciones relacionadas se agruparán automáticamente en el Centro de notificaciones, como sucede en el panel lateral de notificaciones en otros dispositivos. Sin embargo, cuando un conductor presiona el resumen de un grupo en el Centro de notificaciones, en lugar de lanzar un PendingIntent
, se expande el grupo para mostrar todas sus notificaciones.
Notificaciones que no aparecen en el Centro de notificaciones
Las siguientes notificaciones no aparecen en el Centro de notificaciones:
Media playback
. El SO Android Automotive recopila información sobre la reproducción de contenido multimedia en curso y la muestra en un lugar específico en la interfaz de usuario. Ten en cuenta que se debe llamar asetMediaSession
con un token que no sea nulo para que la notificación se reconozca como reproducción de contenido multimedia.- Notificaciones de navegación paso a paso para
CATEGORY_NAVIGATION
- Notificaciones de servicio en primer plano para apps con privilegios del sistema y apps firmadas con la clave de plataforma que tienen un nivel de importancia menor que
IMPORTANCE_DEFAULT
Notificaciones emergentes
Las notificaciones de atención aparecen como una tarjeta de notificación en la parte superior de la pantalla. Debido a que este tipo de notificaciones llama la atención del conductor, las apps solo deben activarlas cuando la información es urgente y fundamental para la conducción, y requiere una acción. Solo determinadas categorías de notificaciones pueden activar una notificación de atención.
Los fabricantes de automóviles pueden decidir si permiten las notificaciones de atención mientras esté abierto el Centro de notificaciones.
Cómo las apps activan las notificaciones de atención
Las apps tienen distintos requisitos para activar una notificación de atención, según tengan privilegios del sistema o no.
- Apps con privilegios del sistema y apps firmadas con la clave de plataforma
- La app puede activar una notificación de atención si la importancia del canal de notificaciones se estableció en
IMPORTANCE_HIGH
o un valor superior. - Todas las otras apps
La app puede activar una notificación de atención si la importancia del canal de notificaciones se estableció en
IMPORTANCE_HIGH
o un valor superior, y si la notificación pertenece a una de las siguientes categorías:
Duración de una notificación emergente
Cuando una app activa una notificación de atención, la notificación aparece al instante en la pantalla del automóvil. Si el conductor no realiza ninguna acción, la notificación de atención se descarta automáticamente después de ocho segundos, excepto en los siguientes casos:
No es posible descartar las notificaciones de atención de determinadas llamadas entrantes, por lo que permanecen en la pantalla hasta que el conductor acepta la llamada o esta finaliza. Para calificar como notificación de atención que no se puede descartar de una llamada entrante, la notificación debe cumplir los siguientes requisitos:
- Pertenece a
CATEGORY_CALL
. - Establece un intent de pantalla completa.
- Está marcada como en curso con el método
setOngoing()
.
- Pertenece a
Las notificaciones de atención permanecen en la pantalla si una app actualiza la notificación dentro del período de ocho segundos.
Cuando se descarta una notificación de atención, aparece en el Centro de notificaciones, a menos que se trate de una notificación de CATEGORY_NAVIGATION
.
Cambios de la API de Notification y restricciones para vehículos
En esta sección, se resumen las diferencias de cada clase en la que la API de Notifications se comporta de forma diferente o tiene restricciones para el SO Android Automotive.
Notification.Builder
Las Tablas 1 y 2 describen los cambios y las restricciones de la API en la clase Notification.Builder
.
Tabla 1: Cambios en los métodos públicos de Notification.Builder
Métodos públicos | Efecto | Descripción | ||
---|---|---|---|---|
|
No-op condicional | Las notificaciones Notification.MessagingStyle deben agregar las acciones especificadas en los requisitos de compatibilidad. Las acciones adicionales que se agreguen no se procesarán como botones de notificación. |
||
|
No-op | No se admiten RemoteViews ni vistas de contenido personalizado. |
||
|
No-op | No se admiten las insignias de notificaciones. | ||
| No-op | No se admiten los temporizadores de cuenta regresiva. | ||
setColorized() |
Cambio de limitaciones |
Apps firmadas en la plataforma: Configurables y permitidas de forma predeterminada. Apps con privilegios del sistema: Configuradas por la plataforma y no permitidas de forma predeterminada. Todas las otras apps: Configuradas por la plataforma y no permitidas de forma predeterminada. |
||
setFullScreenIntent() |
Cambio de comportamiento | No inicia automáticamente el intent. | ||
setLargeIcon() |
Cambio de comportamiento | Los íconos grandes se muestran a la derecha de la notificación. | ||
setLights() |
No-op | Los dispositivos con SO Android Automotive no tienen luces con indicadores LED. | ||
setOngoing() |
Cambio de comportamiento |
El comportamiento es diferente cuando la notificación también activa una notificación de atención.
|
No-op | No se admite el modo privado. |
setSettingsText() |
No-op | Las notificaciones no admiten las funciones que vinculan a la configuración de una app. En su lugar, los conductores usan la app para acceder a su configuración. | ||
setTicker() |
No-op | No se admite el texto del visor. |
Tabla 2: Cambios en las clases anidadas de Notification.Builder
Clases anidadas | Efecto | Descripción |
---|---|---|
|
Sin uso | Solo se muestra el texto de resumen. No se admiten las notificaciones detalladas para estos estilos. |
Notification.BubbleMetadata |
Sin usar | No se admiten las burbujas. |
Notification.MediaStyle |
Oculto | Las notificaciones con este estilo están ocultas. El SO Android Automotive administra las interacciones de la interfaz de usuario para la reproducción y las notificaciones multimedia. |
Notification.MessagingStyle |
Cambio de comportamiento |
Las notificaciones con este estilo presentan las siguientes diferencias:
|
|
Sin uso | No se admiten los amplificadores. |
Notification.Action.Builder
La Tabla 3 describe los cambios y las restricciones de la API en la clase Notification.Action.Builder
.
Tabla 3: Cambios en los métodos públicos de Notification.Action.Builder
Métodos públicos | Efecto | Descripción |
---|---|---|
Constructores públicos | Cambio de comportamiento | Se ignoran los íconos especificados en los constructores públicos. |
addRemoteInput |
Cambio de comportamiento | Para minimizar la distracción del conductor, un asistente digital (como Asistente de Google) inserta la respuesta a un mensaje para el usuario. Los usuarios no pueden escribir mensajes. |
setAllowGeneratedReplies |
No-op | No se admite la Respuesta inteligente. |