Las notificaciones en los relojes usan las mismas APIs y tienen la misma estructura que las notificaciones en los teléfonos.
Las notificaciones pueden aparecer en un reloj de dos maneras:
- Una app para dispositivos móviles crea una notificación y el sistema vincula automáticamente esa notificación con el reloj.
- Una app para wearables crea una notificación.
En ambos casos, usa la clase NotificationCompat.Builder
para crear notificaciones. Cuando compilas notificaciones con la clase builder, el sistema se encarga de mostrarlas de forma correcta. Por ejemplo, cuando emites una notificación desde tu app para dispositivos móviles, cada notificación aparece como una tarjeta en el flujo de notificaciones.
Consulta el siguiente ejemplo para ver cómo se muestran las notificaciones.
Usa una de las subclases NotificationCompat.Style
para obtener los mejores resultados
Nota: Con RemoteViews
, se quitan las notificaciones de diseños personalizados, y el wearable solo muestra el texto y los íconos.
Notificaciones recomendadas para wearables
Usa las notificaciones expandibles como punto de partida para todas las notificaciones, ya que son una excelente manera de atraer a los usuarios de wearables. El estado contraído se muestra en la bandeja de notificaciones para ofrecer una experiencia breve y fácil de ver. Si el usuario presiona la notificación, esta se expande, y se muestra una experiencia envolvente de contenido y acciones adicionales que se pueden desplazar.
Puedes crear una notificación expandible de la misma manera que lo harías en dispositivos móviles, usando cualquiera de las subclases NotificationCompat.Style
. Por ejemplo, una notificación estándar que usa NotificationCompat.MessagingStyle
se ve de la siguiente manera:
Puedes ver que la notificación tiene varias acciones apiladas en la parte inferior del estado expandido.
Para ver ejemplos de NotificationCompat.BigPictureStyle
, NotificationCompat.BigTextStyle
, NotificationCompat.InboxStyle
y NotificationCompat.MessagingStyle
, consulta la muestra de notificación en GitHub.
Sugerencia: Si tus notificaciones incluyen una acción de "respuesta" (por ejemplo, para una app de mensajería), puedes mejorar su comportamiento. Por ejemplo, puedes habilitar las respuestas de entrada de voz directamente desde el wearable o las respuestas de texto predefinidas con setChoices()
.
Para obtener más información, consulta Cómo agregar el botón de respuesta.
Cómo evitar notificaciones duplicadas
De forma predeterminada, las notificaciones se comparten desde la aplicación complementaria para teléfonos a cualquier reloj vinculado. Esta es una opción muy útil si no tienes instalada una app para wearables.
Sin embargo, si compilas una app independiente para relojes y una aplicación complementaria para teléfonos, estas crean notificaciones duplicadas.
Wear OS proporciona una forma de detener las notificaciones duplicadas con las APIs de modo puente. Este es particularmente importante para las apps en dispositivos que ejecutan Wear OS 5 o versiones posteriores, ya que algunas las notificaciones que se pueden descartar en un dispositivo móvil no se pueden descartar en dispositivos Wear OS. Para obtener más información, lee lo siguiente: Opciones para compartir las notificaciones
Cómo agregar funciones específicas de wearables a una notificación
Si necesitas agregar funciones específicas de wearables a una notificación, como ocultar un ícono de app de la notificación de wearables o permitir que los usuarios dicten una respuesta de texto con entrada de voz, puedes usar NotificationCompat.WearableExtender
para especificar las opciones.
Para usar esta API, haz lo siguiente:
- Crea una instancia de
WearableExtender
y configura las opciones específicas de wearables para la notificación. - Crea una instancia de
NotificationCompat.Builder
y configura las propiedades deseadas para tu notificación como se describió anteriormente en esta guía. -
Llama a
extend()
en la notificación y pasaWearableExtender
. Esto permite aplicar las opciones de wearables a la notificación. - Llama a
build()
para compilar la notificación.
Nota: Si usas el framework de NotificationManager
, algunas funciones de NotificationCompat.WearableExtender
no funcionan, así que asegúrate de usar NotificationCompat
.
Puedes sincronizar los descartes o las cancelaciones de notificaciones en los dispositivos del usuario. Para sincronizar un descarte, usa el método setDismissalId()
. Para cada notificación, pasa un ID único general como una cadena cuando llames a setDismissalId()
. Cuando se cancela la notificación, las demás notificaciones con el mismo ID de cancelación también se cancelan en el reloj y en el teléfono vinculado. Para recuperar un ID de cancelación, usa getDismissalId()
.
Cómo especificar acciones exclusivas de wearables
Si quieres que diferentes acciones estén disponibles en el reloj y el teléfono, usa WearableExtender.addAction()
. Una vez que agregues una acción con este método, el wearable no mostrará ninguna otra acción agregada con NotificationCompat.Builder.addAction()
. Las acciones que se agregan con WearableExtender.addAction()
aparecen solo en el wearable, no en el teléfono.