Descripción general de 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 u otras información oportuna de tu app. Los usuarios pueden presionar la notificación para abrir tu 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 crear notificaciones, lee Crear un notificación.

Para obtener más información sobre el diseño de notificaciones y los patrones de interacción, consulta el Diseño de notificaciones .

Presentación en un dispositivo

Las notificaciones se muestran automáticamente a los usuarios en diferentes ubicaciones y formatos. Aparece una notificación como un ícono en la barra de estado, una entrada más detallada en el panel lateral de notificaciones y un distintivo en el ícono de la aplicación. Las notificaciones también aparecer en wearables sincronizados.

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 del estado .

Los usuarios pueden deslizar hacia abajo la barra de estado para abrir el panel lateral de notificaciones, donde puede 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. Comienza en Android 13, esta vista expandida incluye un botón que les permite a los usuarios detener una app que tiene un acceso continuo en primer plano Google Cloud.

La notificación permanece visible en el panel lateral hasta que se descarta por la aplicación o el usuario.

Notificación emergente

A partir de Android 5.0, las notificaciones pueden aparecer brevemente en un anuncio llamada notificación emergente. Este comportamiento suele ser notificaciones que el usuario necesita conocer de inmediato y solo aparecen si el dispositivo está desbloqueado.

Figura 3: Aparecerá una notificación de atención frente al app en primer plano.

La notificación de atención aparece cuando la app emite la notificación. Integra desaparece luego de un momento, pero permanece visible en el panel lateral de notificaciones como normalmente.

Estas son algunas de las condiciones que pueden activar notificaciones de atención:

  • 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 utiliza tonos o vibraciones activadas dispositivos con Android 7.1 (nivel de API 25) y versiones anteriores.

  • El canal de notificaciones es muy importante en los dispositivos. con 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 manera programática si las notificaciones que publica tu app se mostrarán 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 la cerradura. las notificaciones en la pantalla o inhabilitar todas las notificaciones en la pantalla bloqueada. Para empezar Android 8.0, los usuarios pueden inhabilitar o habilitar las notificaciones en 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 pantalla de bloqueo visibilidad.

Insignia en el ícono de la app

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

Los usuarios pueden tocar & mantén presionado el ícono de una app para ver las notificaciones de esa app. Usuarios puede descartar las notificaciones o responder a ellas desde ese menú, al igual que la notificación panel lateral.

Figura 5: Insignias de notificación y las funciones táctiles y menú de espera.

Para obtener más información sobre cómo funcionan las insignias, consulta Cómo modificar una notificación. insignia.

Dispositivos con Wear OS

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

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

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

Anatomía de las notificaciones

Las plantillas del sistema determinan el diseño de una notificación, define el contenido de cada parte de la plantilla. Algunos detalles del solo aparecen en la vista expandida.

Figura 7: 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; establecer con setSmallIcon()
  2. Nombre de la app: proporcionado por el sistema.
  3. Marca de tiempo: proporcionada por el sistema, pero puedes anularla usando setWhen() u ocultarlo usando setShowWhen(false)
  4. Ícono grande: opcional; generalmente se usa solo para las fotos de los contactos. No lo uses para el ícono de la app. Establecer con setLargeIcon()
  5. Título: opcional; establecer con setContentTitle()
  6. Texto: opcional; establecer con setContentText()

Recomendamos usar plantillas del sistema para una compatibilidad de diseño adecuada en todos los dispositivos. Si es necesario, puedes crear una notificación personalizada diseño.

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

Acciones de la notificación

Aunque no es obligatorio, se recomienda abrir cada notificación una actividad de app apropiada cuando se presiona. Además de este notificación, puedes agregar botones de acción que completen una acción relacionada tarea desde la notificación (a menudo, sin abrir una actividad), como 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.

Cómo agregar botones de acción se explica con más detalle en Cómo crear un 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 un acción de notificación hace que la app inicie una actividad o envíe una respuesta directa los usuarios deben desbloquear el dispositivo antes de que la aplicación 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 debe estar desbloqueado para que tu app invoque esa acción, ya sea independientemente del flujo de trabajo que inicie la acción. Esta opción agrega una capa adicional de seguridad a las notificaciones en dispositivos bloqueados.

Solicitar que un dispositivo se desbloquee antes de que la app invoque una notificación determinada acción, pasa true a setAuthenticationRequired() cuando crees tu 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 Si quieres que la notificación sea más larga, puedes habilitar un área de texto más grande. que se puede expandir aplicando una plantilla adicional, como se muestra en la figura 9.

Figura 9: Una notificación expandible para grandes texto.

También puede crear una notificación expandible con una imagen en estilo Recibidos con una conversación de chat o con controles de reproducción multimedia. Para obtener más información, Consulta Cómo crear una notificación expandible.

Actualizaciones de notificaciones y grupos

Para evitar abrumar a tus usuarios con notificaciones múltiples o redundantes cuando actualizaciones adicionales, actualizar una campaña en lugar de que emitir uno nuevo o usar el estilo de Recibidos notificación para mostrar actualizaciones de conversaciones.

Sin embargo, si necesitas enviar varias notificaciones, considera agrupar las notificaciones separadas en un grupo, disponible en Android 7.0 y versiones posteriores.

Un grupo de notificaciones te permite contraer varias notificaciones en una publicación en el panel lateral de notificaciones con un resumen. El usuario puede expandir progresivamente la grupo de notificaciones y cada notificación que contenga para obtener más detalles, como se muestra en 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 o no aparecen. Esto les permite inhabilitar notificaciones específicas canales para tu app en lugar de inhabilitar todas las notificaciones. Los usuarios pueden controlar las opciones visuales y auditivas de cada canal desde el sistema Android de tu aplicación, como se muestra en la figura 11. Los usuarios también pueden tocar y mantener una notificación para los comportamientos del canal asociado.

En dispositivos con Android 7.1 (nivel de API 25) y versiones anteriores, los usuarios pueden administrar notificaciones por app solamente. Cada aplicación tiene, de manera efectiva, un solo canal. en Android 7.1 y versiones anteriores.

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 la app. Una aplicación también puede crear canales de notificación en respuesta a las elecciones realizadas por usuarios. Por ejemplo, puedes configurar canales de notificaciones independientes para cada grupo de conversación creado por un usuario en una app de mensajería.

El canal también es el lugar donde especificas el nivel de importancia de tu en Android 8.0 y versiones posteriores, de modo que todas las notificaciones canal de notificaciones tengan el mismo comportamiento. Esto se describe a continuación sección.

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

Importancia de la notificación

Android usa la importancia de una notificación para determinar el nivel de Google interrumpe al usuario visual y auditivamente. Cuanto mayor sea la importancia de una notificación, más disruptiva será la notificación.

En Android 7.1 (nivel de API 25) y versiones anteriores, la importancia de una notificación está determinada por de la notificación priority

En Android 8.0 (nivel de API 26) y versiones posteriores, la importancia de una notificación es determinado por el importance del canal en el que se envía la notificación. 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 notificaciones asociados son lo siguiente:

  • 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 un sistema no disruptivo. Ubicaciones de la IU, por ejemplo, en el panel lateral de notificaciones o como una insignia en el selector ícono. Sin embargo, puedes modificar el aspecto de la notificación insignia.

Para obtener más información, lee sobre cómo configurar el 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. Notificaciones estáticas aparecerán 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 se pueden interrumpirlos, como solo alarmas, recordatorios, eventos, llamadas o mensajes. Para los mensajes y las llamadas, los usuarios pueden filtrar por remitente o emisor, como se muestra en la figura 13.

Figura 13: Los usuarios pueden permitir notificaciones según categorías de todo el sistema (izquierda) y remitente o emisor (derecha).

En Android 8.0 (nivel de API 26) y versiones posteriores, los usuarios pueden permitir notificaciones para categorías específicas de la aplicación, también conocidas como canales; para ello, anula el modo No interrumpir en cada canal. Para Por ejemplo, una aplicación de pago puede tener canales para notificaciones relacionadas con retiros y depósitos. El usuario puede permitir notificaciones de retiro, depósito notificaciones o ambas en el modo de prioridad.

En dispositivos con Android 7.1 (nivel de API 25) o versiones anteriores, los usuarios pueden permitir notificaciones a través de una app por app, en lugar de hacerlo canal por canal.

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

Notificaciones para servicios en primer plano

Se requiere una notificación cuando la app se ejecuta en primer plano servicio: un Service que se ejecuta en el de larga duración y visible para el usuario, como un de fútbol favorito. Esta notificación no se puede descartar como otras notificaciones. Quitar la notificación, el servicio debe detenerse o quitarse del primer plano para cada estado.

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

Límites de publicación

A partir de Android 8.1 (nivel de API 27), las apps no pueden hacer que el sonido de una notificación más de una vez por segundo. Si tu app publica varias notificaciones en un segundo, todas aparecen normalmente, pero solo la primera de cada segundo emite un sonido.

Sin embargo, Android también aplica un límite de frecuencia de actualización de notificaciones. Si publican actualizaciones de una misma notificación con demasiada frecuencia, como muchas en menos de un segundo, el sistema podría descartar las actualizaciones.

Compatibilidad de notificaciones

La IU del sistema de notificaciones de Android y las APIs relacionadas con las notificaciones de manera continua evolucionar. Para usar las funciones más recientes de la API de notificaciones y, al mismo tiempo, admitir usa la API de notificaciones de la biblioteca de compatibilidad NotificationCompat: y sus subclases, así como NotificationManagerCompat Esto te permite evitar escribir código condicional para verificar los niveles de API, ya que estos Las APIs lo controlan.

NotificationCompat se actualiza a medida que evoluciona la plataforma para incluir los métodos más recientes. Sin embargo, la disponibilidad de un método en NotificationCompat no garantizar que la función correspondiente se proporcione en dispositivos más antiguos En algunos en muchos casos, llamar a una API recientemente introducida genera una no-ops en dispositivos más antiguos.

El siguiente es un resumen de los cambios de comportamiento más notables por nivel de API para Notificaciones de Android.

Android 5.0 (nivel de API 21)

  • Presenta la pantalla de bloqueo y las notificaciones de atención.

  • Permite al usuario configurar el teléfono en modo No interrumpir y configurar qué las notificaciones pueden interrumpirlos cuando el dispositivo está en modo de solo prioridad.

  • Agrega métodos para establecer si una notificación se debe mostrar en la pantalla de bloqueo. como, por ejemplo, setVisibility()), y para especificar una versión “pública” del texto de la notificación.

  • Agrega el método setPriority(), que le indica al sistema el nivel de interrupción de la notificación. Por ejemplo, establecer la prioridad en alta hace que la aparecerá como una notificación de atención.

  • Se agregó compatibilidad con pilas de notificaciones a Android Wear (ahora llamado Wear OS). dispositivos. Coloca notificaciones en una pila usando setGroup() Las pilas de notificaciones, también conocidas como grupos o paquetes, no son compatibles con tablets o teléfonos hasta Android 7.0 (nivel de API 24).

Android 7.0 (nivel de API 24)

  • Cambia el estilo de las plantillas de notificación para poner énfasis en la imagen principal y avatar.

  • Agregar tres plantillas de notificaciones: una para apps de mensajería y las otras dos para decorar vistas de contenido personalizado con la posibilidad de expandirse y otras del sistema.

  • Agrega compatibilidad con dispositivos de mano, como teléfonos y tablets, para grupos de notificaciones. Usa la misma API que Android Wear (ahora llamado Wear). SO) se introdujeron en Android 5.0 (nivel de API 21).

  • Permite que los usuarios respondan dentro de una notificación con respuestas intercaladas. Pueden ingresar que luego se enruta a la app principal de la notificación.

Android 8.0 (nivel de API 26)

  • Hace que las notificaciones individuales se ubiquen en un canal.

  • Permite a los usuarios desactivar las notificaciones por canal, en lugar de desactivar todas notificaciones de una app.

  • Hace que las apps con notificaciones activas muestren una insignia de notificación en la parte superior el ícono de la app en la pantalla principal o del selector.

  • Permite a los usuarios posponer una notificación desde el panel lateral. Puedes establecer una configuración el tiempo de espera de una notificación.

  • Te permite establecer el color de fondo de la notificación.

  • Traslada algunas APIs en relación con los comportamientos de las notificaciones de la Notification a NotificationChannel Por ejemplo, usa NotificationChannel.setImportance() en vez de NotificationCompat.Builder.setPriority() para Android 8.0 y versiones posteriores.

Android 13.0 (nivel de API 33)

Android 14.0 (nivel de API 34)

  • Limita las notificaciones de intents de pantalla completa a las apps que proporcionan llamadas y alarmas. Usa la API de NotificationManager.canUseFullScreenIntent para comprueba si tu app tiene permiso. De lo contrario, tu app puede usar ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT para iniciar la página de configuración en la que los usuarios pueden otorgar el permiso.

  • Cambia la forma en que los usuarios experimentan notificaciones que no se pueden descartar permitiendo que los usuarios descarten la acción de notificaciones incluso cuando Se configuró la marca Notification.FLAG_ONGOING_EVENT. Esto no se aplica a CallStyle notificaciones si la marca Notification.FLAG_ONGOING_EVENT está o Device Policy Controller (DPC) y los paquetes de asistencia para . Esto tampoco se aplica cuando el teléfono está bloqueado o si el el usuario selecciona Borrar todo.