Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Notificaciones en el SO Android Automotive

Las notificaciones les proporcionan a los conductores información breve y oportuna sobre eventos de tu app cuando no está en uso. Las 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 fin 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 el 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. Además, el conductor también puede activar el sonido de la conversación en el Centro de notificaciones.

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.

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 son 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:

  • Si la notificación tiene una respuesta Action, entonces la Action 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 solo RemoteInput.

Centro de notificaciones

Casi todas las notificaciones se muestran en el Centro de notificaciones, incluso si se activaron como notificaciones emergentes. Las notificaciones persisten en el Centro de notificaciones a lo largo de la duración de un viaje.

Los conductores pueden interactuar con las notificaciones en el Centro de notificaciones. Según el fabricante del automóvil, los conductores pueden 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 usuario, las apps solo deben activar una notificación de este tipo cuando la información es urgente, 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 las apps activan notificaciones emergentes

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á configurada como 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 como 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:

  • 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 Notifications 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

addAction()

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.

createBigContentView()

createContentView()

createHeadsUpContentView()

setContent()

setCustomBigContentView()

setCustomContentView()

setCustomHeadsUpContentView()

No-op No se admiten RemoteViews ni vistas de contenido personalizado.

setBadgeIconType()

setNumber()

No-op No se admiten las insignias de notificaciones.

setChronometerCountDown()

setUsesChronometer()

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.

El resto de las 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.

setPublicVersion()

setVisibility()

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

Notification.BigPictureStyle

Notification.BigTextStyle

Notification.InboxStyle

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:

Notification.CarExtender

Notification.WearableExtender

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 el 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.