Una notificación es un mensaje que muestra Android fuera de la IU de la app para proporcionar al usuario recordatorios, mensajes de otras personas y otra información puntual de la 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. Para comenzar a compilar notificaciones, consulta Cómo crear una notificación.
Para obtener más información sobre el diseño de notificaciones y los patrones de interacción, consulta la guía de diseño de notificaciones.
Presentación en un dispositivo
Las notificaciones aparecen automáticamente a 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 de notificaciones y una insignia en el ícono de la app. Las notificaciones también aparecen en los wearables vinculados.
Barra de estado y panel lateral de notificaciones
Cuando llega una notificación, aparece primero 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 hacia abajo la barra de estado para abrir el panel de notificaciones, donde pueden ver más detalles y realizar acciones desde 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 emergente. Normalmente, este formato se usa para las notificaciones importantes que el usuario debe ver de inmediato y solo se muestra si el dispositivo está desbloqueado.
Figura 3: Aparece una notificación emergente frente a la app en primer plano.
La notificación emergente aparece cuando tu app emite la notificación. Desaparece después de un momento, pero permanece visible en el panel de notificaciones como de costumbre.
Entre las condiciones que pueden activar notificaciones emergentes, se incluyen las siguientes:
La actividad del usuario se encuentra en el modo de pantalla completa, como cuando la app usa
fullScreenIntent
.La notificación tiene prioridad alta y usa tonos o vibración en dispositivos con Android 7.1 (nivel de API 25) y versiones anteriores.
El canal de notificación tiene importancia alta en los dispositivos que ejecutan Android 8.0 (nivel de API 26) y versiones posteriores.
Bloquear pantalla
A partir de Android 5.0, las notificaciones pueden aparecer en la pantalla de bloqueo.
Puedes establecer de forma programática si las notificaciones que publica tu app se muestran en una pantalla de bloqueo segura y, si es así, el nivel de detalle visible.
Los usuarios pueden emplear la configuración del sistema para elegir el nivel de detalle visible en las notificaciones de la pantalla de bloqueo o inhabilitar todas las notificaciones en esta pantalla. A partir de Android 8.0, los usuarios pueden inhabilitar o habilitar las notificaciones en la pantalla de bloqueo para cada canal de notificación.
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 las notificaciones de la pantalla de bloqueo.
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 indican que hay nuevas notificaciones con una insignia de color conocida como punto de notificación en el ícono de la app correspondiente.
Los usuarios pueden mantener presionado el ícono de una app para ver las notificaciones asociadas con ella. Luego, los usuarios pueden descartar las notificaciones o interactuar con ellas desde ese menú, de forma similar al panel lateral.
Figura 5: Insignias de notificación y menú de mantener presionado
Para obtener más información sobre cómo funcionan los distintivos, consulta Cómo modificar un distintivo de notificación.
Dispositivos con Wear OS
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 mejorar la experiencia, puedes personalizar el aspecto de las notificaciones en wearables y proporcionar 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 está determinado por las plantillas del sistema, y tu app define el contenido de cada sector de la plantilla. Algunos detalles de la notificación aparecen solo en la vista ampliada.
Figura 7: Notificación con detalles básicos
Las partes más comunes de una notificación se indican en la Figura 7:
- Ícono pequeño: Es obligatorio y se establece con
setSmallIcon()
. - Nombre de la app: Proporcionado por el sistema.
- Marca de tiempo: El sistema la proporciona, pero puedes anularla con
setWhen()
o bien ocultarla consetShowWhen(false)
. - Ícono grande: Es opcional y, por lo general, se usa solo para fotos de contacto.
No lo uses para el ícono de tu app. Se establece con
setLargeIcon()
. - Título: Es opcional y se establece con
setContentTitle()
. - Texto: Es opcional y se establece con
setContentText()
.
Te recomendamos que uses plantillas del sistema para garantizar una compatibilidad de diseño correcta 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 características y más, lee 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 app adecuada cuando se la presiona. Además de esta acción de notificación predeterminada, puedes agregar botones de acción que ejecuten una tarea relacionada con la app desde la notificación (generalmente sin abrir una actividad), como se muestra en la figura 8.
Figura 8: Notificación con botones de acción.
A partir de Android 7.0 (nivel de API 24), también puedes agregar una acción para responder a los 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.
En Cómo crear una notificación, se explica en más detalle el proceso para agregar botones de acció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 causa que una app inicie una actividad o envíe una respuesta directa, los usuarios deben desbloquear el dispositivo para 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 se deba desbloquear para que la app invoque esa acción, independientemente del flujo de trabajo que inicie la acción. Esta opción agrega una capa de seguridad adicional a las notificaciones en dispositivos bloqueados.
Para solicitar que se desbloquee el dispositivo antes de que la 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:
Kotlin
val moreSecureNotification = Notification.Action.Builder(...) // This notification always requests authentication when invoked // from a lock screen. .setAuthenticationRequired(true) .build()
Java
Notification moreSecureNotification = new Notification.Action.Builder(...) // 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 deseas que la notificación sea más larga, puedes aplicar una plantilla adicional que habilite un área de texto más grande y expandible, como se muestra en la figura 9.
Figura 9: Notificación expandible para texto largo.
También puedes crear una notificación expandible con una imagen, en 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 no abrumar a los usuarios con notificaciones múltiples o redundantes cuando haya actualizaciones, actualiza una notificación existente en lugar de emitir una nueva o usa la notificación de bandeja de entrada para mostrar las novedades 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 juntar varias notificaciones en una sola publicación en el panel de notificaciones, con un resumen. El usuario puede expandir progresivamente el grupo de notificaciones y cada notificación individual para obtener más detalles, como se muestra en la figura 10.
Figura 10: Grupo de notificaciones contraído y expandido
Para saber 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; si no, no aparecerán. Esto permite que los usuarios inhabiliten canales de notificaciones específicos de tu app en lugar de inhabilitar todas tus 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 de cada app de manera individual. En Android 7.1 y versiones anteriores, cada app tiene solo un canal.
Figura 11: Configuración de notificaciones para la app de Reloj y uno de sus canales.
Una app puede tener canales separados para cada tipo de notificación que emita. Una app también puede crear canales de notificaciones en respuesta a las elecciones realizadas por los usuarios. Por ejemplo, puedes configurar canales de notificaciones separados para cada grupo de conversación que cree el usuario en una app de mensajería.
El canal también es el lugar donde se especifica el nivel de importancia de las notificaciones en Android 8.0 y versiones posteriores, por lo que todas las notificaciones publicadas en el mismo canal de notificaciones tienen 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 el nivel de interrupción (visual y auditiva) de cada notificación. Cuanto mayor sea la importancia de una notificación, mayor será el nivel de interrupción.
En Android 7.1 (nivel de API 25) y versiones anteriores, la importancia de una notificación se determina según el objeto priority
de la notificación.
En Android 8.0 (nivel de API 26) y versiones posteriores, la importancia de una notificación se determina según el objeto importance
del canal al que se envía la notificación. Los usuarios pueden cambiar la importancia de un canal de notificación 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.
Alta: Emite un sonido.
Media: No emite sonido.
Baja: No emite sonido y no aparece en la barra de estado.
Todas las notificaciones, independientemente de su importancia, aparecen en ubicaciones de la IU no disruptivas del sistema, como en el panel lateral de notificaciones o como insignias en el ícono de selector. Sin embargo, puedes modificar la apariencia de la insignia 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 siguen apareciendo en la IU del sistema normalmente, 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 del sistema pueden interrumpirlos, como solo alarmas, recordatorios, eventos, llamadas o mensajes. Para mensajes y 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 notificaciones según categorías del sistema (izquierda) y según 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 el modo No interrumpir canal por canal. Por ejemplo, una app de pagos puede tener canales para notificaciones relacionadas con retiros y depósitos. El usuario puede permitir notificaciones de retiro, de depósito o ambas en el modo de prioridad.
En los dispositivos con Android 7.1 (nivel de API 25) y versiones anteriores, los usuarios pueden permitir notificaciones de app específicas, en lugar de hacerlo por canales.
Para configurar las notificaciones para 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 la app está ejecutando un servicio en primer plano, es decir, un Service
que se ejecuta en segundo plano y que es de larga duración y visible para el usuario, como un reproductor multimedia. Esta notificación no se puede descartar como otras. Para quitar la notificación, el servicio debe detenerse o quitarse del estado en primer plano.
Para obtener más información, consulta Servicios en primer plano. Si estás creando un reproductor multimedia, también puedes consultar 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 para niños
- 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 introduce una función de período de enfriamiento 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 vibración para llamar la atención no están sujetas a un período de espera. El usuario puede desactivar el tiempo de espera de las notificaciones en la Configuración.
Figura 9: Es la configuración de reducción de sonido de notificaciones.
A continuación, se muestra un ejemplo de cómo encontrar la configuración de tiempo de espera de las notificaciones:
Kotlin
val intent = Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) val pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
Java
Intent intent = new Intent(Settings.ACTION_MANAGE_ADAPTIVE_NOTIFICATIONS) PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)