Notificaciones

Las notificaciones proporcionan información breve, oportuna y pertinente relacionada con tu app cuando no está en uso.

El SO Android controla muchos aspectos de las notificaciones, pero tú puedes controlar otros. Sigue estos pasos cuando implementes notificaciones:

  1. Comprende la anatomía de una notificación.
  2. Elige el tipo de notificación para tu caso de uso.
  3. Establece la categoría de notificación que se alinea con el tipo de notificación que elegiste.

Conclusiones

  • Considera el propósito de la notificación: ¿por qué alertarás a tus usuarios?
  • Determina el patrón de permisos de notificaciones, considera la importancia de las notificaciones para tu app y dónde solicitarlas en el recorrido del usuario.
  • Elige la plantilla de notificación.
  • Crea el contenido de la notificación:
    • El texto del encabezado debe resumir la notificación de forma concisa.
    • El texto del contenido debe mostrar una vista previa de la notificación.
    • Contenido de imágenes, si corresponde al contenido de tu app
    • Es el arte de la llave de medios y los metadatos de la plantilla de medios.
  • Proporciona acciones basadas en el contenido de la notificación, ya sea con botones de texto, escritura o controles multimedia, para que el usuario sepa claramente qué puede hacer con ella.
  • Incluye el ícono de tu app y establece el color de fondo del ícono.
  • Establece canales y categorías para tus notificaciones. Esto permite que el sistema y el usuario personalicen las notificaciones que reciben y proporciona un comportamiento de prioridad.
  • Si tu app puede enviar varias notificaciones a la vez, agrúpalas.
  • Consulta el kit de IU de Android en Figma para ver plantillas de notificaciones.

Anatomía de una notificación

Las notificaciones están diseñadas para que sea fácil escanear y usar los elementos más importantes de una notificación. Estos elementos son los siguientes:

  • Contenido principal: Constituye el elemento más destacado de una notificación. La información secundaria, como la marca de tiempo, es más pequeña y se consolida sobre el contenido principal.
  • Personas: Si la notificación involucra a una persona, se destaca un avatar del resto del contenido.
  • Acciones: Los usuarios pueden expandir las notificaciones presionando un ícono indicador. Las acciones se muestran con etiquetas de texto en un color de fondo y una ubicación independientes.
Figura 1: Notificación contraída

Encabezado y contenido de la notificación

Cuando se contrae, una notificación muestra el ícono de la app, el texto del encabezado, la marca de tiempo, el indicador de expansión y el texto del contenido. También puede mostrar un ícono grande de forma opcional.

Figura 2: Área del encabezado de la notificación

1 Ícono de la app: El ícono de la app es una representación bidimensional de la identidad de tu app. Aparece en monocromo en la barra de estado. Si tu app envía una amplia variedad de notificaciones, considera reemplazar el ícono de la app por un símbolo para distinguir entre los diferentes tipos de notificaciones. Consulta Cómo aplicar el color del ícono para obtener más detalles.

2 Texto del encabezado: Un breve título para la notificación o la fuente, como el nombre de la cuenta para los usuarios. El contenido es el elemento más destacado de una notificación.

3 Marca de tiempo: Indica cuándo se envió una notificación, como la hora de una llamada perdida.

4 Indicador de expansión: Indica si la notificación está en estado contraído o expandido.

5 Texto de contenido: Información complementaria.

6 Ícono grande (opcional): Se puede agregar una imagen para reforzar la notificación de una manera significativa, como un mensaje que incluya un avatar del remitente.

Aplica el color del ícono

A partir de Android 12 (nivel de API 31), el sistema deriva el color del ícono del color de la notificación que estableces en la app. Si la app no establece el color, usa el color del tema del sistema. Anteriormente, el color era gris.

Figura 3: Color del ícono de app con estilo resultante

En la mayoría de los estilos, el sistema aplica este color solo si la notificación es para un servicio en primer plano. Sin embargo, no existe tal requisito para las notificaciones de MediaStyle y DecoratedMediaCustomViewStyle que tienen una sesión multimedia adjunta.

En el siguiente fragmento, se muestra cómo aplicar el color del ícono.

val notification = Notification.Builder()
    .setColor(Color.GREEN)
    .setColorized(true)
    .setSmallIcon(R.drawable.app_icon)
    .setStyle(Notification.DecoratedCustomViewStyle())
    .build()

Acciones de la notificación

Figura 4: Área de acción de la notificación

1 Acciones de botones de texto

2 Botones de acción con relleno

3 Respuestas sugeridas

4 Campo de texto de respuesta

A partir de Android 7.0 (nivel de API 24), el sistema muestra acciones sin íconos para admitir más texto. Para admitir dispositivos Android Wear y dispositivos que ejecutan Android 6.0 (nivel de API 23) y versiones anteriores, tu app debe seguir proporcionando un ícono.

Vistas expandidas

Puedes usar una vista expandida para mostrar más información al usuario sin que este tenga que salir de la notificación.

Cuando se expande, una notificación puede proporcionar hasta tres de los siguientes tipos de acciones:

  • Respuestas sugeridas
  • Acciones destacadas (botones en forma de píldora)
  • Acciones de texto estándar
Incluye acciones de texto que dupliquen el comportamiento de presionar el cuerpo de la notificación.
Brinda al usuario la oportunidad de interactuar con la notificación. La app de Reloj de Google muestra un temporizador en ejecución, pero le permite al usuario pausarlo o agregar un minuto directamente desde la notificación.

Cómo habilitar la escritura en las notificaciones

Incluye una acción de respuesta para permitir que el usuario escriba directamente en una notificación. Está diseñado para escribir una pequeña cantidad de texto, como responder un mensaje de texto o anotar una nota breve.

Para escribir textos más largos, dirija a los usuarios a su app para brindarles más espacio para ver y editar texto.

En el caso de las apps de mensajería, recomendamos mantener la notificación presente después de que el usuario haya enviado la respuesta y esperar hasta que se pause la conversación antes de descartarla automáticamente.

Figura 5: Un usuario responde directamente en Mensajes de Android sin salir de la notificación después de presionar Responder

Elige el tipo de notificación según tu caso de uso

Google usa las siguientes plantillas de notificación en sus apps para Android. Estas plantillas se pueden personalizar hasta cierto punto para tu app.

Consulta el kit de IU de Android en Figma para ver plantillas de notificaciones.

Plantilla estándar

La plantilla estándar es adecuada para la mayoría de las notificaciones, ya que permite texto breve, un ícono grande (cuando corresponda) y acciones.

Figura 6: Plantilla de notificación estándar

Plantilla de texto grande

La plantilla de texto grande es ideal para mostrar bloques de texto más largos. Permite que el usuario vea una vista previa de más texto después de expandir la notificación.

Figura 7: Plantilla de texto grande, con ícono grande opcional

Plantilla de panorama general

La plantilla de foto grande está diseñada para notificaciones que contienen una imagen. Cuando se contrae, la notificación muestra una miniatura de ícono grande de la imagen. Cuando se expande, la notificación muestra una vista previa mucho más grande.

Figura 8: Plantilla de panorama general

Plantilla de progreso

La plantilla de progreso está diseñada para actividades iniciadas por el usuario que tardan en completarse. Cuando se expande, una notificación que usa esta plantilla muestra una barra de progreso y también incluye una acción de "cancelar" que permite al usuario detener esta actividad. (Las actividades que no se pueden cancelar no justifican las notificaciones).

Figura 9: Plantilla de progreso

Plantilla de medios

La plantilla de medios está diseñada para permitir que el usuario controle el contenido multimedia que se está reproduciendo desde una app.

  • Cuando se contrae, la notificación puede mostrar hasta tres acciones. El ícono grande puede mostrar una imagen relacionada, como la portada de un álbum.
  • Cuando se expande, la notificación muestra hasta cinco acciones con una imagen más grande o seis acciones sin imagen. El fondo y otros elementos de la notificación heredan automáticamente los colores de la imagen.
Figura 10: Plantilla de medios

Plantilla de mensajería

La plantilla MessagingStyle está diseñada para la comunicación en tiempo real. Cuando se expande, una notificación que usa esta plantilla permite al usuario responder mensajes desde la notificación.

Figura 11: Plantilla de mensaje

Plantilla de llamada

Usa la plantilla CallStyle para generar notificaciones de formato grande que incluyan un archivo adjunto de imagen grande y que indiquen una llamada entrante o saliente.

Figura 12: Plantilla de llamada

Permisos de notificaciones

Si bien las notificaciones pueden ser relevantes y oportunas, la mayoría son no exentas, es decir, el usuario debe dar su consentimiento para recibir notificaciones de tu app.

Hay una excepción a esta regla: a partir de Android 13 (nivel de API 33), las sesiones de medios y las apps que administran llamadas telefónicas están exentas de solicitar el consentimiento del usuario. Las apps preexistentes también pueden cumplir con los requisitos si el usuario ya tiene activadas las notificaciones. Consulta más detalles en Exenciones.

Te recomendamos que tu app proporcione opciones de notificación en la configuración para permitir que los usuarios actualicen sus preferencias de notificaciones.

Solicita al usuario que habilite las notificaciones no exentas

En el caso de las notificaciones no exentas, solicita al usuario que indique si quiere habilitar la recepción de notificaciones. Es probable que los usuarios que eligen explícitamente recibir notificaciones las consideren más útiles y menos intrusivas.

Figura 13: Solicitud del consentimiento del usuario para una notificación no exenta

Espera para mostrar el mensaje del diálogo de notificación:

  • Describe los beneficios que brindan las notificaciones y el resultado de no otorgar permisos para recibirlas.
  • Proporciona una IU contextual que relaciona la notificación con sus funciones o con lo que afecta. Esta IU puede adoptar cualquier forma para integrarse mejor en tu app: por ejemplo, una tarjeta dentro de una tarifa, una hoja inferior o una pantalla de incorporación. Cualquiera de estas debería poder descartarse.
  • No mostrar el diálogo de permiso de notificaciones si el usuario descartó la IU.

A partir de Android 13, se puede volver a solicitar a los usuarios permisos de notificación.

Notificaciones obligatorias

Los servicios en primer plano realizan operaciones visibles para el usuario, pero mientras no interactúa directamente con tu app. Estos servicios muestran una notificación en la barra de estado para que los usuarios sepan que tu app está realizando una tarea en primer plano y que está consumiendo recursos del sistema.

Figura 14: Ejemplo de notificación de servicio en primer plano de una app de fitness

Como estos procesos usan batería y, posiblemente, datos, tu app debe mostrar una notificación que no se pueda descartar para que los usuarios los conozcan. El usuario no puede descartar la notificación, por lo que debes proporcionarle una acción para detener el servicio.

En el siguiente ejemplo, se muestra una notificación de una app de fitness. El usuario inició una sesión de entrenamiento activa, lo que crea una instancia de un servicio en primer plano que realiza el seguimiento de la sesión de entrenamiento. La app muestra la notificación para indicar que está haciendo un seguimiento de la caminata, con una opción para ver el entrenamiento.

Cuándo no usar una notificación

No uses notificaciones para ninguno de los siguientes casos de uso:

  • Para realizar promoción cruzada o publicitar otro producto (Play Store lo prohíbe de forma estricta)
  • Si el usuario nunca abrió tu app
  • Como el método principal de comunicación con los usuarios
  • Para alentar al usuario a volver a una app, pero sin proporcionar valor directo (por ejemplo, "¡Hace mucho que no te vemos!")
  • Para solicitudes de calificación de tu app
  • Para operaciones que no requieren la participación del usuario, como la sincronización de información
  • Anunciar los estados de error de los que la app puede recuperarse sin interacción del usuario
  • Para mensajes de cumpleaños o festividades
Enviar saludos de cumpleaños o festivos en forma de notificaciones
Interrumpir al usuario en medio de una tarea con el único propósito de preguntarle si estás haciendo un buen trabajo

Comportamiento

Ten en cuenta los siguientes comportamientos de las notificaciones y cómo controlarlos en ciertos contextos.

Llegada de la notificación

Cuando llega una notificación, Android la agrega a la bandeja de notificaciones. Según los parámetros que establezcas y el estado actual del dispositivo, la notificación puede realizar cualquiera de las siguientes acciones:

  • Emitir un sonido o hacer que el teléfono vibre
  • Se muestra en la barra de estado con un ícono. Por lo general, es el ícono de tu app, pero, si tienes varios tipos de notificaciones, usa un símbolo que capture el propósito de la notificación.
  • Se muestra como una notificación emergente que aparece en la pantalla actual para captar la atención del usuario.

Como siempre, el usuario puede optar por modificar los comportamientos de las notificaciones que establezcas.

Figura 15: Llegada de la notificación

1 Indicador de notificación en la barra de estado, que indica que hay una notificación en el panel lateral.

2 La notificación "echa un vistazo" en la pantalla actual para captar la atención del usuario en medio de una tarea.

Panel lateral de notificaciones

Por lo general, el panel de notificaciones de Android muestra las notificaciones en orden cronológico inverso, con ajustes influenciados por las siguientes condiciones:

  • La prioridad o importancia de las notificaciones que se indican en la app
  • Indica si la notificación alertó recientemente al usuario con un sonido o una vibración.
  • Las personas adjuntas a la notificación y si son contactos destacados
  • Indica si la notificación representa una actividad importante en curso, como una llamada telefónica en curso o música en reproducción.
  • El SO Android altera la apariencia de algunas notificaciones en la parte superior e inferior de la lista agregando énfasis o quitándolo, lo que ayuda al usuario a analizar el contenido.

Cómo controlar las notificaciones obsoletas

La bandeja de notificaciones está diseñada para mostrar a los usuarios información relevante para el momento actual. Si una notificación anterior está obsoleta, es decir, ya no es pertinente, descártala para que el usuario no la vea.

Figura 16: El texto que acaba de llegar aparece en la parte superior del panel lateral de notificaciones, con una notificación de menor prioridad sobre una foto que se agregó en la parte inferior

Las notificaciones nuevas se indican con una insignia en el ícono de la app

En los selectores compatibles en dispositivos con Android 8.0 (nivel de API 26) y versiones posteriores, los íconos de la app muestran un punto de notificación para indicar que la app tiene una notificación nueva asociada. Estos puntos aparecen de forma predeterminada en las apps de Launcher que los admiten, y tu app no necesita realizar ninguna acción. Las insignias también se pueden inhabilitar y limitar.

Figura 17: Punto de notificación en el ícono de una app, que indica que la app tiene una notificación nueva asociada

Acciones que los usuarios pueden realizar con las notificaciones

Las notificaciones pueden permitir a los usuarios realizar cualquiera de las siguientes acciones:

  • Navegar a un destino: Para navegar, el usuario puede presionar una notificación. Si la notificación se muestra en una pantalla bloqueada, el usuario debe presionarla dos veces y, luego, ingresar su PIN, patrón o contraseña.

    Cuando el usuario presiona una notificación, tu app debe mostrar una IU que se relacione directamente con esa notificación y que le permita al usuario realizar una acción de inmediato. Por ejemplo, si la notificación indica que es su turno en un juego de dos jugadores, al presionarla, debería dirigirse directamente a ese juego.

  • Ver una vista expandida de la notificación: Aparece un indicador de expansión en el encabezado. Un usuario puede presionar el indicador o deslizar el cuerpo de la notificación hacia abajo para expandirla.

    Figura 18: Notificación expandida
  • Descartar la notificación (si se permite): El usuario puede descartarla deslizándola hacia la izquierda o la derecha.

Las notificaciones en curso que indican un proceso continuo en segundo plano, como la reproducción de música, no se pueden descartar con un deslizamiento.

  • Posponer una notificación emergente: El usuario puede deslizar el dedo hacia arriba en una notificación emergente, y no se permitirá que se muestren más notificaciones de ese evento durante un minuto.

  • Controlar notificaciones similares en el futuro: Los usuarios pueden acceder a los controles de notificaciones de las siguientes maneras:

    • Cómo mantener presionada una notificación individual
    • Deslizar la notificación hacia la izquierda o la derecha y, luego, presionar el ícono de configuración

Los controles que se muestran varían según la versión de Android y si la app tiene canales para sus notificaciones (a partir de Android 8.0).

Agrupa varias notificaciones

En el caso de las apps que generan varias notificaciones del mismo tipo, Android ofrece el agrupamiento de notificaciones para evitar abrumar a los usuarios.

Tu app puede presentar varias notificaciones según la siguiente jerarquía.

  • Una notificación principal muestra un resumen de sus notificaciones secundarias.
  • Si el usuario expande la notificación principal, Android revela todas las notificaciones secundarias.
  • Un usuario puede expandir una notificación secundaria para ver todo su contenido.

Android presenta las notificaciones secundarias sin información de encabezado duplicada. Por ejemplo, si una notificación secundaria tiene el mismo ícono de la app que su notificación principal, el encabezado de la notificación secundaria no incluye un ícono.

Las notificaciones secundarias deben ser comprensibles si aparecen solas, ya que el sistema puede mostrarlas fuera del grupo cuando lleguen.

Figura 19: Vistas contraídas y expandidas de las notificaciones agrupadas.

Configuración

Canales

A partir de Android 8.0 (nivel de API 26), todas las notificaciones deben asignarse a un canal. En cada canal, puedes configurar el comportamiento visual y auditivo que se aplicará a todas las notificaciones de este. Los usuarios pueden cambiar estos parámetros de configuración y decidir qué canales de notificaciones de tu app pueden ser intrusivos o visibles.

Para obtener detalles sobre cómo implementar esto, consulta Cómo crear y administrar canales de notificaciones.

La importancia se debe elegir teniendo en cuenta el tiempo y la atención del usuario. Cuando una notificación sin importancia se disfraza de urgente, puede generar una alarma innecesaria.

Importancia Comportamiento Uso Ejemplos
HIGH Emite un sonido y aparece en la pantalla Información urgente que el usuario debe conocer o sobre la que debe actuar de inmediato Mensajes de texto, alarmas y llamadas
DEFAULT Emite un sonido Información que se debe ver lo antes posible, pero que no interrumpa lo que está haciendo el usuario Alertas de tráfico y recordatorios de tareas
LOW Sin sonido Canales de notificación que no cumplen con los requisitos de otros niveles de importancia Contenido nuevo al que se suscribió el usuario, invitaciones de redes sociales
MIN No emitir sonido ni mostrar Información no esencial que puede esperar o que no es específicamente relevante para el usuario Lugares de interés cercanos, clima y contenido promocional

Categorías predefinidas

Ya sea que uses canales o no, asigna cada notificación individual a la categoría predefinida más adecuada. Android puede usar esta información para tomar decisiones de clasificación y filtrado.

Categoría Descripción
CATEGORY_CALL Llamada entrante (voz o video) o solicitud de comunicación sincrónica similar
CATEGORY_MESSAGE Mensaje entrante directo (SMS, mensaje instantáneo, etc.)
CATEGORY_EMAIL Mensaje en bloque asíncrono (correo electrónico)
CATEGORY_EVENT Evento de calendario
CATEGORY_PROMO Promoción o anuncio
CATEGORY_ALARM Alarma o temporizador
CATEGORY_PROGRESS Progreso de una operación en segundo plano de larga ejecución
CATEGORY_SOCIAL Actualización de red social o uso compartido de datos
CATEGORY_ERROR Error en una operación en segundo plano o un estado de autenticación
CATEGORY_TRANSPORT Control de transporte de medios para la reproducción
CATEGORY_SYSTEM Actualización del estado del dispositivo o el sistema. Reservado para ser utilizado por el sistema
CATEGORY_SERVICE Indicación de ejecución de servicio en segundo plano
CATEGORY_RECOMMENDATION Una recomendación específica y oportuna para un solo evento. Por ejemplo, una app de noticias podría recomendar una noticia que el usuario quiera leer a continuación.
CATEGORY_STATUS Información constante sobre el estado contextual o del dispositivo

Notificaciones en la pantalla bloqueada

Si un usuario optó por mostrar notificaciones cuando la pantalla está bloqueada, estas notificaciones pueden ocultar cualquier contenido que tu app marque como sensible. Android evalúa el nivel de visibilidad de cada notificación para determinar qué se puede mostrar de forma segura.

Cómo establecer el nivel de sensibilidad del contenido en las pantallas de bloqueo

La privacidad del usuario es de suma importancia, por lo que debes tener en cuenta que hay diferentes niveles de notificaciones que pueden ser visibles en la pantalla de bloqueo. Para cada notificación que crees, debes establecer el nivel de visibilidad como público, privado o secreto.

  • Las notificaciones públicas son completamente visibles en las pantallas de bloqueo seguras.
  • Las notificaciones secretas están ocultas.
  • Las notificaciones privadas se encuentran en el medio: solo muestran información básica, como el nombre de la app que publicó la notificación y su ícono. En lugar del contenido normal, que está oculto, puedes mostrar texto que no revele información personal, como 2 new messages.

En el siguiente ejemplo, las notificaciones de la pantalla de bloqueo de las apps de Gmail y Fotos muestran todo el contenido después de que el usuario eligió mostrar esta información en la pantalla de bloqueo.

Figura 20: Pantalla de bloqueo con diferentes niveles de sensibilidad.

1 Todo el contenido de las notificaciones que se muestra en la pantalla de bloqueo

2 Se ocultó el contenido sensible de la notificación en la pantalla de bloqueo

Estilo

Texto claro y conciso

Android trunca los títulos de contenido en una sola línea (incluso cuando se expanden).

Un buen título de contenido cumple con los siguientes lineamientos:

  • No supera los 30 caracteres
  • Contiene la información más importante
  • Evita las variables (a menos que contengan un número o una cadena de texto corta, o estén precedidas por texto).
  • Excluye el nombre de la app, que ya aparece en el encabezado.
Mostrar el nombre de la app en el título del contenido, lo que es redundante con el área del encabezado y usa caracteres disponibles
Muestra la información más importante en el título del contenido.

El texto de buen contenido cumple con los siguientes lineamientos:

  • Evita superar el límite de 40 caracteres
  • Evita repetir lo que se dice en el título del contenido.

El ícono grande

Usa el ícono grande para los casos de uso en los que las imágenes refuerzan de manera significativa el contenido de la notificación. Por ejemplo:

  • Comunicaciones de otra persona, como la imagen de alguien que envía un mensaje
  • La fuente del contenido, si es diferente de la app que envía la notificación, como el logotipo de un canal de YouTube al que se suscribió un usuario
  • Símbolos significativos sobre la notificación, como un símbolo de flecha para las indicaciones sobre cómo llegar

Los íconos grandes deben ser circulares cuando muestran a una persona, pero cuadrados en todos los demás casos.

Usa el ícono grande para el desarrollo de la marca.
Usa el ícono grande para reforzar el contenido de la notificación de una manera significativa, como mostrar la foto de una persona adjunta a una notificación de mensaje.

Actualizaciones de las versiones de Android

La IU del sistema de notificaciones de Android y las APIs relacionadas con notificaciones evolucionan continuamente. Para obtener una lista de estos cambios, consulta la compatibilidad de las notificaciones.

Consideraciones de la plataforma

Wear

Si el usuario tiene un dispositivo Wear OS vinculado, todas las notificaciones aparecerán allí automáticamente, incluidos los detalles y los botones de acción expandibles. Para obtener más información, consulta la página de diseño de notificaciones en Wear.