Crea notificaciones de actualización en tiempo real

Las novedades en tiempo real proporcionan un resumen de las actualizaciones importantes para que los usuarios puedan hacer un seguimiento del progreso sin abrir la app. El sistema promociona las notificaciones de novedades en tiempo real, aunque los usuarios pueden descartar o descender de nivel temporalmente una notificación de novedades en tiempo real a una notificación estándar. Las notificaciones promocionadas aparecen de forma más destacada en las plataformas del sistema, incluida la parte superior de la barra lateral de notificaciones y la pantalla de bloqueo, y como un chip en la barra de estado. Las notificaciones de novedades en tiempo real deben seguir los principios de las notificaciones para entregar información breve, oportuna y pertinente.

Figura 1: Ejemplo de una notificación de novedades en tiempo real

Las tarjetas de notificaciones promocionadas tienen las siguientes características de apariencia:

  • Expandido de forma predeterminada
  • No contraíble

La notificación debe cumplir con los siguientes requisitos para calificar como novedad en tiempo real:

Características de la promoción

Las siguientes APIs te ayudan a determinar si el sistema promocionará tu notificación:

  • Notification.FLAG_PROMOTED_ONGOING indica si se promociona la notificación.
  • Notification.hasPromotableCharacteristics() valida si el sistema puede promocionar la notificación. Este método no tiene en cuenta si el usuario inhabilitó las novedades en tiempo real de la app en la configuración.
  • NotificationManager.canPostPromotedNotifications() verifica si tu app puede publicar una notificación promocionada, por ejemplo, si el usuario la habilitó o inhabilitó en la configuración.
  • Settings.ACTION_MANAGE_APP_PROMOTED_NOTIFICATIONS es la acción de intent que permite que las apps envíen a los usuarios a Configuración para habilitar esta función.

Criterios de uso

Usa las novedades en tiempo real para las actividades que están en curso, que inicia el usuario y que son urgentes.

Figura 2. Una actualización en tiempo real en la pantalla principal y de bloqueo, y como un chip.

En curso

Una actualización en vivo debe representar una actividad que esté en curso de forma activa, con un inicio y un final claros. Si una actividad ocurre en el pasado, no uses una actualización en tiempo real. En su lugar, usa una notificación estándar. Esto también se aplica a los eventos que aún no comenzaron, aunque los eventos que están por comenzar pueden usar una actualización en tiempo real.

Las novedades en tiempo real representan actividades en curso. No uses las actualizaciones en tiempo real para ofrecer acceso acelerado a las funcionalidades de la app. Si quieres hacerlo, usa un widget de la app o una tarjeta de Configuración rápida personalizada.

  • Usos adecuados: Navegación activa, llamadas telefónicas en curso, seguimiento activo de viajes compartidos y seguimiento activo de entregas de comida.
  • Usos inapropiados: Anuncios, promociones, mensajes de chat, alertas, próximos eventos de calendario y acceso rápido a las funciones de la app.

Iniciado por el usuario

La mayoría de las novedades en tiempo real deben representar actividades que el usuario activa de forma explícita, como iniciar un entrenamiento, iniciar la navegación en auto o solicitar un viaje compartido. No muestres información ambiental, como la relacionada con el entorno, los intereses o los próximos eventos del usuario, en una novedad en tiempo real. No permitas que las actividades activadas por terceros generen novedades en tiempo real.

A veces, un usuario puede realizar una acción que inicie una actividad en algún momento en el futuro. Por ejemplo, si el usuario compra boletos para un vuelo o un concierto, se registra para un torneo o indica de alguna otra manera su asistencia futura a un evento con un horario específico. En estos casos, puede ser apropiado mostrar automáticamente una novedad en tiempo real cuando comience el evento programado. Sin embargo, las apps deben ajustar sus activadores para que solo aparezcan cuando la actividad sea inminente. Si el usuario indica de forma explícita que quiere comenzar a supervisar un evento en segundo plano, como un partido deportivo, puedes comenzar a publicar novedades en tiempo real para ese evento. Sin embargo, también debes incluir una acción para dejar de fijar en la notificación asociada.

Urgente

Muestra una novedad en tiempo real solo si requiere la atención del usuario durante la actividad. Un caso de uso clave para las novedades en tiempo real es la supervisión, en la que el usuario obtiene un beneficio significativo al mirar las novedades en tiempo real para estar al tanto del estado de evolución de la actividad.

Una actualización en vivo suele ser apropiada para las actividades que alternan entre actualizaciones en vivo y notificaciones normales. Por ejemplo, mostrar una notificación de tarjeta de embarque es apropiado muchas horas antes del vuelo de un usuario, pero la notificación debería convertirse en una actualización en tiempo real solo cuando el usuario tenga una necesidad urgente, como cuando llega al aeropuerto o al lugar, o una vez que haya comenzado el embarque. En cambio, una actualización en tiempo real no es adecuada para hacer un seguimiento de un paquete, ya que el usuario no necesita supervisarlo constantemente.

Prácticas de UX

Usa el ícono de seguimiento para visualizar el estado. Esto se puede actualizar de forma dinámica.

un rastreador personalizado en una barra de progreso
Figura 3: Un ícono de monitor personalizado.

Cuando se esté calculando una hora estimada de llegada o aún no esté disponible, no muestres un estado vacío. Proporciona un texto de marcador de posición activo, como "Pensando…" o "Redireccionando…", para indicar que el sistema está funcionando, como se muestra en el ejemplo.

estado no vacío para mostrar el pensamiento
Figura 4: Un estado no vacío para tu actualización en tiempo real

Chips de estado

Los chips de estado permiten que los usuarios hagan un seguimiento de las novedades en tiempo real cuando la notificación no está a la vista. Usa setShortCriticalText o setWhen para transmitir información de estado importante sobre tu notificación centrada en el progreso.

chip de estado con ícono
Figura 5: El estado indeterminado muestra el ícono pequeño, Notification.Builder#setSmallIcon.
chip de estado con hora
Figura 6: Usa Notification.Builder#setShortCriticalText para mostrar la hora absoluta.
chip de estado con información
Figura 7. Usa Notification.Builder#setShortCriticalText para transmitir información importante.

Cuando el tiempo

La hora de inicio activa una cuenta regresiva para la duración de la notificación, a menos que se descarte o se actualice. En las siguientes viñetas, se describe cómo funciona el tiempo en varias situaciones:

  • El parámetro when debe ser de al menos 2 minutos en el futuro: si la hora actual es las 10:05 a.m. y el parámetro when se establece en las 10:10 a.m., el chip dirá 5 min.
  • Cuando la hora es en el pasado: No se muestra el texto.
  • Se puede mostrar un temporizador en el chip cuando se usa Chronometer para indicar el tiempo. Consulta setUsesChronometer y setChronometerCountdown. El temporizador del cronómetro se muestra en el chip siempre que sea positivo.
  • Si no quieres que se muestre la hora en la notificación, usa setShowWhen para FALSE.

Aspecto del chip de estado

El chip de estado siempre incluye un ícono y, de forma opcional, texto. El chip tiene un ancho máximo de 96 dp. El texto solo se mostrará si cabe por completo en el chip. El texto se muestra según los siguientes criterios:

  • Si tiene menos de 7 caracteres, muestra todo el texto.
  • Si se mostrará menos de la mitad del texto, muestra solo el ícono.
  • Si se mostrará más de la mitad del texto, muestra la mayor cantidad posible.

Wear OS

Las novedades en tiempo real se vinculan a algunos dispositivos Wear OS conectados. Para obtener orientación sobre este comportamiento de puente, así como orientación sobre cómo crear novedades en tiempo real locales para Wear OS, consulta la guía de novedades en tiempo real de Wear OS.

Dismissal

Los usuarios pueden controlar la visibilidad de las notificaciones en el panel de notificaciones. Publicar novedades en tiempo real no deseadas puede hacer que los usuarios revoquen el permiso de publicación de una app.

Para evitar que los usuarios inhabiliten por completo las novedades en tiempo real, evita publicar actualizaciones que los usuarios puedan descartar. No vuelvas a publicar las novedades en tiempo real que el usuario descartó. Usa setDeleteIntent para detectar las actualizaciones descartadas.

Consulta la app de ejemplo para experimentar con estas APIs.

Preguntas frecuentes

Pregunta: ¿Qué es el punto blanco que aparece al final de la barra de progreso?

fin del indicador de visualización de accesibilidad del progreso
Figura 8: Visualización de la accesibilidad al final del recorrido

Respuesta: El punto blanco al final de la barra de progreso marca visualmente el final de la barra de progreso.

Pregunta: ¿Por qué no se admiten las notificaciones personalizadas para las novedades en tiempo real?

Respuesta: Las notificaciones personalizadas dificultan las pruebas y la UX coherentes, ya que su comportamiento varía significativamente entre las versiones de Android y los fabricantes de dispositivos. Evita las notificaciones personalizadas con RemoteViews.