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, a fin de 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 emergente.
Botones de reproducción automática y para silenciar en notificaciones de mensajes
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 emergentes 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 a fin de 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:
- Forman parte de la categoría
CATEGORY_MESSAGE
. - Usan el estilo
Notification.MessagingStyle
. - Solo incluyen los mensajes no leídos.
Tienen una
Action
de marcado como leído que cumple los siguientes requisitos:- La acción semántica debe configurarse como
Action.SEMANTIC_ACTION_MARK_AS_READ
. - La
Action
debe indicar que no mostrará ninguna interfaz de usuario cuando se active.
- La acción semántica debe configurarse como
Si la notificación tiene una respuesta
Action
, entonces laAction
cumple los siguientes requisitos:- La acción semántica debe configurarse como
Action.SEMANTIC_ACTION_REPLY
. - La
Action
debe indicar que no mostrará ninguna interfaz de usuario cuando se active. - La
Action
debe contener un soloRemoteInput
.
- La acción semántica debe configurarse como
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 agrupan automáticamente en el Centro de notificaciones, al igual que 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:
- Notificaciones de reproducción de contenido multimedia para
CATEGORY_TRANSPORT
(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) - 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 emergentes aparecen como una tarjeta de notificación en la parte superior de la pantalla. Debido a que una notificación emergente llama la atención del conductor, las apps solo deben activar una notificación de este tipo 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 emergente.
Los fabricantes de automóviles pueden decidir si permiten o no que aparezcan las notificaciones emergentes mientras esté abierto el Centro de notificaciones.
Cómo activan notificaciones emergentes las apps
Las apps tienen distintos requisitos para activar una notificación emergente, 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 emergente si la importancia del canal de notificaciones está establecida en
IMPORTANCE_HIGH
o un valor superior. - El resto de las apps
Para activar una notificación emergente, la app establece la importancia del canal de notificaciones en
IMPORTANCE_HIGH
o un valor superior, y garantiza que la notificación pertenezca a una de las siguientes categorías:
Duración de una notificación emergente
Cuando una app activa una notificación emergente, la notificación aparece al instante en la pantalla del automóvil. Si el conductor no realiza ninguna acción, la notificación emergente se descarta automáticamente después de 8 segundos (valor que pueden configurar los fabricantes de automóviles), excepto en los siguientes casos:
No es posible descartar las notificaciones emergentes 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 emergente 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 emergentes permanecen en la pantalla si una app actualiza la notificación dentro del período de 8 segundos.
Cuando se descarta una notificación emergente, 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
En las siguientes tablas, se 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 emergente. Solo hace que no se pueda descartar la notificación emergente cuando se trata de una notificación de llamada entrante. Para calificar como notificación emergente que no se puede descartar de una llamada entrante, la notificación debe cumplir los siguientes requisitos:
Los conductores pueden descartar todos los otros tipos de notificaciones emergentes. |
|
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 usar | 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 usar | No se admiten los amplificadores. |
Notification.Action.Builder
En la siguiente tabla, se describen 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 | A fin de 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. |