Información acerca de las notificaciones

Una notificación es un mensaje que Android muestra fuera de la IU de tu app para proporcionar al usuario recordatorios, comunicaciones de otras personas o cualquier otra información oportuna de tu app. Los usuarios pueden presionar la notificación para abrir la app o realizar una acción directamente desde la notificación.

En esta página, se proporciona una descripción general acerca de dónde aparecen las notificaciones y cuáles son las características disponibles.

Guías de implementación

En las siguientes guías, se muestra cómo implementar varias funciones de notificación en tu app:

Para obtener más información sobre el diseño y los patrones de interacción de las notificaciones, consulta la guía de diseño de notificaciones.

Presentación en un dispositivo

Las notificaciones aparecen automáticamente para los usuarios en diferentes ubicaciones y formatos. Las notificaciones aparecen como un ícono en la barra de estado, una entrada más detallada en el panel lateral de notificaciones y un globo en el ícono de la app.

Comportamiento en dispositivos múltiples

De forma predeterminada, las notificaciones también aparecen en los wearables vinculados. En situaciones en las que el contenido de la notificación solo es relevante para el dispositivo de origen, usa setLocalOnly(). Un ejemplo es una notificación que confirma que se completó la descarga de un archivo multimedia. Para obtener más orientación específica sobre las notificaciones de Wear OS, consulta la guía de notificaciones de Wear OS.

Barra de estado y panel lateral de notificaciones

Cuando emites una notificación, primero aparece como un ícono en la barra de estado.

Figura 1. Los íconos de notificación aparecen en el lado izquierdo de la barra de estado.

Los usuarios pueden deslizar el dedo hacia abajo en la barra de estado para abrir el panel lateral de notificaciones, donde pueden ver más detalles y realizar acciones con la notificación.

Figura 2. Notificaciones en el panel lateral de notificaciones

Los usuarios pueden arrastrar hacia abajo una notificación del panel lateral para abrir la vista expandida, que muestra contenido adicional y botones de acción, de haberlos. A partir de Android 13, esta vista expandida incluye un botón que les permite a los usuarios detener una app que tiene servicios en primer plano en curso.

La notificación permanecerá visible en el panel lateral hasta que la app o el usuario la descarten.

Notificación emergente

A partir de Android 5.0, las notificaciones pueden aparecer brevemente en una ventana flotante llamada notificación de atención. Este comportamiento suele ser para las notificaciones importantes que el usuario necesita conocer de inmediato y solo aparece si el dispositivo está desbloqueado.

Figura 3. Aparece una notificación de atención delante de la app en primer plano.

La notificación de atención aparece cuando tu app emite la notificación. Desaparece después de un momento, pero permanece visible en el panel lateral de notificaciones como de costumbre.

Entre las condiciones que pueden activar las notificaciones de atención, se incluyen las siguientes:

  • La actividad del usuario está en modo de pantalla completa, como cuando la app usa fullScreenIntent.

  • La notificación tiene prioridad alta y usa tonos o vibraciones en dispositivos que ejecutan Android 7.1 (nivel de API 25) y versiones anteriores.

  • El canal de notificaciones tiene una gran importancia en los dispositivos que ejecutan Android 8.0 (nivel de API 26) y versiones posteriores.

Pantalla de bloqueo

A partir de Android 5.0, las notificaciones pueden aparecer en la pantalla bloqueada.

Puedes establecer de manera programática si las notificaciones que publica tu app se muestran en una pantalla de bloqueo segura y, de ser así, el nivel de detalle visible.

Los usuarios pueden usar la configuración del sistema para elegir el nivel de detalle visible en las notificaciones de la pantalla de bloqueo o para inhabilitar todas las notificaciones de la pantalla de bloqueo. A partir de Android 8.0, los usuarios pueden inhabilitar o habilitar las notificaciones de la pantalla de bloqueo para cada canal de notificaciones.

Figura 4. Notificaciones en la pantalla de bloqueo con contenido sensible oculto

Para obtener más información, consulta Cómo configurar la visibilidad de la pantalla de bloqueo.

Insignia en el ícono de la app

En los selectores compatibles de dispositivos que ejecutan Android 8.0 (nivel de API 26) y versiones posteriores, los íconos de las apps indican las notificaciones nuevas con una insignia de color, conocida como punto de notificación, en el ícono de selector de la app correspondiente.

Los usuarios pueden mantener presionado el ícono de la app para ver sus notificaciones. También pueden descartarlas o realizar acciones en ellas desde ese menú, de manera similar al panel lateral de notificaciones.

Figura 5: Los globos de notificación y el menú que aparece cuando mantienes presionado un elemento

Para obtener más información sobre cómo funcionan los globos, consulta Cómo modificar un globo de notificación.

Dispositivos con Wear OS

Si el usuario tiene un dispositivo Wear OS vinculado, todas tus notificaciones aparecerán allí automáticamente, incluidos los detalles expandibles y los botones de acción.

Puedes mejorar la experiencia personalizando el aspecto de tus notificaciones en wearables y proporcionando diferentes acciones, como respuestas sugeridas y respuestas de entrada de voz. Si necesitas más información, consulta cómo agregar características específicas para wearables a tu notificación.

Figura 6: Las notificaciones aparecen automáticamente en un dispositivo Wear OS vinculado.

Anatomía de las notificaciones

El diseño de una notificación se determina según las plantillas del sistema, y tu app define el contenido de cada parte de la plantilla. Algunos detalles de la notificación solo aparecen en la vista expandida.

Figura 7. Es una notificación con detalles básicos.

Las partes más comunes de una notificación se indican en la figura 7, de la siguiente manera:

  1. Ícono pequeño: obligatorio; se configura con setSmallIcon().
  2. Nombre de la app: Lo proporciona el sistema.
  3. Marca de tiempo: El sistema la proporciona, pero puedes anularla con setWhen() u ocultarla con setShowWhen(false).
  4. Ícono grande: Es opcional y, por lo general, se usa solo para las fotos de contacto. No lo uses para el ícono de tu app. Se establece con setLargeIcon().
  5. Título: Es opcional y se establece con setContentTitle().
  6. Texto: Es opcional y se establece con setContentText().

Te recomendamos que uses plantillas del sistema para garantizar la compatibilidad del diseño en todos los dispositivos. Si es necesario, puedes crear un diseño de notificación personalizado.

Para obtener más información sobre cómo crear una notificación con estas funciones y más, consulta Cómo crear una notificación.

Acciones de la notificación

Aunque no es obligatorio, se recomienda que cada notificación abra una actividad de la app adecuada cuando se presione. Además de esta acción de notificación predeterminada, puedes agregar botones de acción que completen una tarea relacionada con la app desde la notificación, a menudo sin abrir una actividad, como se muestra en la figura 8.

Figura 8: Una notificación con botones de acción

A partir de Android 7.0 (nivel de API 24), puedes agregar una acción para responder mensajes o ingresar otro texto directamente desde la notificación.

A partir de Android 10 (nivel de API 29), la plataforma puede generar automáticamente botones para acciones basadas en intenciones sugeridas.

Para obtener más información sobre cómo agregar botones de acción, consulta Cómo crear una notificación.

Cómo solicitar que se desbloquee el dispositivo

Es probable que los usuarios vean acciones de notificación en la pantalla de bloqueo del dispositivo. Si una acción de notificación hace que una app inicie una actividad o envíe una respuesta directa, los usuarios deben desbloquear el dispositivo antes de que la app pueda invocar esa acción de notificación.

En Android 12 (nivel de API 31) y versiones posteriores, puedes configurar una acción de notificación de modo que el dispositivo deba desbloquearse para que la app invoque esa acción, sin importar el flujo de trabajo que inicie. Esta opción agrega una capa de seguridad adicional a las notificaciones en dispositivos bloqueados.

Para exigir que se desbloquee un dispositivo antes de que tu app invoque una acción de notificación determinada, pasa true a setAuthenticationRequired() cuando crees la acción de notificación, como se muestra en el siguiente fragmento de código:

val intent = Intent(
    context, null
    /** Replace with a valid target activity */
)
val moreSecureNotification = NotificationCompat.Action.Builder(
    0, "Reply",
    PendingIntentCompat.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE, false)
)
    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Notificación expandible

De forma predeterminada, el contenido de texto de la notificación se trunca para que quepa en una línea. Si quieres que la notificación sea más larga, puedes habilitar un área de texto más grande que se pueda expandir aplicando una plantilla adicional, como se muestra en la figura 9.

Figura 9. Es una notificación expandible para texto largo.

También puedes crear una notificación expandible con una imagen, con estilo de bandeja de entrada, con una conversación de chat o con controles de reproducción de contenido multimedia. Para obtener más información, consulta Cómo crear una notificación expandible.

Actualizaciones de notificaciones y grupos

Para evitar inundar a tus usuarios con notificaciones múltiples o redundantes cuando tengas actualizaciones adicionales, actualiza una notificación existente en lugar de emitir una nueva o usa la notificación de estilo de bandeja de entrada para mostrar las actualizaciones de la conversación.

Sin embargo, si es necesario enviar varias notificaciones, considera agruparlas en un grupo, disponible en Android 7.0 y versiones posteriores.

Un grupo de notificaciones te permite contraer varias notificaciones en una sola publicación en el panel lateral de notificaciones con un resumen. El usuario puede expandir progresivamente el grupo de notificaciones y cada notificación dentro de él para obtener más detalles, como se muestra en la figura 10.

Figura 10. Un grupo de notificaciones contraído y expandido

Para obtener información sobre cómo agregar notificaciones a un grupo, consulta Cómo crear un grupo de notificaciones.

Canales de notificaciones

A partir de Android 8.0 (nivel de API 26), todas las notificaciones deben asignarse a un canal o no aparecerán. Esto permite que los usuarios inhabiliten canales de notificaciones específicos para tu app en lugar de inhabilitar todas las notificaciones. Los usuarios pueden controlar las opciones visuales y auditivas de cada canal desde la configuración del sistema Android, como se muestra en la figura 11. Los usuarios también pueden mantener presionada una notificación para cambiar los comportamientos del canal asociado.

En los dispositivos que ejecutan Android 7.1 (nivel de API 25) y versiones anteriores, los usuarios solo pueden administrar las notificaciones por app. Cada app tiene solo un canal en Android 7.1 y versiones anteriores.

Figura 11. Configuración de notificaciones de la app de Reloj y uno de sus canales.

Una app puede tener canales independientes para cada tipo de notificación que emite. Una app también puede crear canales de notificaciones en respuesta a las elecciones que hagan los usuarios. Por ejemplo, puedes configurar canales de notificaciones independientes para cada grupo de conversación que cree un usuario en una app de mensajería.

En el canal, también especificas el nivel de importancia de tus notificaciones en Android 8.0 y versiones posteriores, de modo que todas las notificaciones publicadas en el mismo canal de notificaciones tengan el mismo comportamiento. Esto se describe en la siguiente sección.

Para obtener más información, consulta Cómo crear y administrar canales de notificaciones.

Importancia de la notificación

Android usa la importancia de una notificación para determinar cuánto interrumpe al usuario de forma visual y audible. Cuanto mayor sea la importancia de una notificación, más disruptiva será.

En Android 7.1 (nivel de API 25) y versiones anteriores, la importancia de una notificación se determina por su priority.

En Android 8.0 (nivel de API 26) y versiones posteriores, la importancia de una notificación se determina según el importance del canal en el que se publica. Los usuarios pueden cambiar la importancia de un canal de notificaciones en la configuración del sistema, como se muestra en la figura 12.

Figura 12. Los usuarios pueden cambiar la importancia de cada canal en Android 8.0 y versiones posteriores.

Los posibles niveles de importancia y los comportamientos de notificación asociados son los siguientes:

  • Urgente: Emite un sonido y aparece como una notificación de atención.

  • Alto: Emite un sonido.

  • Medio: No emite sonido.

  • Baja: No emite sonido ni aparece en la barra de estado.

Todas las notificaciones, independientemente de su importancia, aparecen en ubicaciones de la IU del sistema que no interrumpen, como en el panel lateral de notificaciones y como una insignia en el ícono de selector. Sin embargo, puedes modificar el aspecto del globo de notificación.

Para obtener más información, consulta cómo establecer la importancia.

Modo No interrumpir

A partir de Android 5.0 (nivel de API 21), los usuarios pueden habilitar el modo No interrumpir, que silencia el sonido y la vibración de todas las notificaciones. Las notificaciones seguirán apareciendo en la IU del sistema como de costumbre, a menos que el usuario especifique lo contrario.

Hay tres niveles disponibles en el modo No interrumpir:

  • Silencio total: bloquea todos los sonidos y vibraciones, incluso de alarmas, música, videos y juegos.
  • Solo alarmas: bloquea todos los sonidos y vibraciones, excepto las alarmas.
  • Solo prioridad: Los usuarios pueden configurar qué categorías de todo el sistema pueden interrumpirlos, como solo alarmas, recordatorios, eventos, llamadas o mensajes. En el caso de los mensajes y las llamadas, los usuarios pueden filtrar según el remitente o la persona que llama, como se muestra en la figura 13.
Figura 13. Los usuarios pueden permitir que se muestren las notificaciones según las categorías de todo el sistema (izquierda) y el remitente o la persona que llama (derecha).

En Android 8.0 (nivel de API 26) y versiones posteriores, los usuarios también pueden permitir notificaciones para categorías específicas de la app (también conocidas como canales) anulando No interrumpir canal por canal. Por ejemplo, una app de pagos puede tener canales para las notificaciones relacionadas con retiros y depósitos. El usuario puede permitir las notificaciones de retiro, las de depósito o ambas cuando está en el modo de prioridad.

En los dispositivos que ejecutan Android 7.1 (nivel de API 25) y versiones anteriores, los usuarios pueden permitir las notificaciones por app, en lugar de por canal.

Para configurar las notificaciones de estos parámetros de configuración del usuario, debes establecer una categoría para todo el sistema.

Notificaciones para servicios en primer plano

Se requiere una notificación cuando tu app ejecuta un servicio en primer plano, es decir, un Service que se ejecuta en segundo plano, que es de larga duración y que el usuario puede notar, como un reproductor multimedia. Esta notificación no se puede descartar como las demás. Para quitar la notificación, se debe detener el servicio o quitarlo del estado de primer plano.

Para obtener más información, consulta Servicios en primer plano. Si estás creando un reproductor multimedia, también lee Cómo reproducir contenido multimedia en segundo plano.

Comportamiento de las notificaciones

Android 16.0 (nivel de API 36)

Ahora, las notificaciones se agrupan automáticamente en nombre de la app.

Las siguientes notificaciones se agrupan automáticamente:

  • Notificaciones sin resumen
  • Notificaciones sin notificaciones secundarias
  • Notificaciones con una sola notificación secundaria o una cantidad baja de ellas

Android 15.0 (nivel de API 35)

Reducción de sonido

Android 15 presenta una función de reducción de sonido de notificaciones que tiene como objetivo mejorar la experiencia de las notificaciones que llegan en rápida sucesión. Esta función reduce la apariencia, el volumen del sonido y la intensidad de la vibración de las notificaciones repetitivas durante un máximo de dos minutos.

Las notificaciones críticas que requieren audio y respuesta táctil para llamar la atención no están sujetas al tiempo de espera. El usuario puede desactivar la reducción de sonido de notificaciones en Configuración.

Figura 14: La configuración de la reducción de sonido de notificaciones.