Cómo probar la manera en que tu app controla los cambios de comportamiento

La Versión preliminar para desarrolladores de Wear OS 5 se basa en Android 14 (nivel de API 34), que es una versión más reciente en comparación con la que se basa en Wear OS 4 (Android 13 o nivel de API 33). Por lo tanto, cuando prepares tu app para Wear OS para usarla en la Versión preliminar para desarrolladores de Wear OS 5, deberás controlar los cambios de comportamiento del sistema que afectan a todas las apps de Android 14, así como los cambios para las apps orientadas a Android 14.

Cambios en Wear OS 5 que afectan a todas las apps

Los siguientes cambios de comportamiento afectan los casos de uso y las bibliotecas específicos de Wear OS. Estos cambios afectan a todas las apps que se ejecutan en Wear OS 5, independientemente de la versión del SDK de destino.

Panel de privacidad

La Versión preliminar para desarrolladores de Wear OS 5 agrega compatibilidad con el panel de privacidad, que se lanzó inicialmente en dispositivos móviles en Android 12.

El panel de privacidad ofrece a los usuarios una vista centralizada del uso de datos de cada app, con los siguientes detalles:

  • Los tipos de datos a los que se accede, como la ubicación y el micrófono.
  • La fecha en la que se accedió a esos tipos de datos

Con el acceso a esta información, los usuarios pueden tomar decisiones más fundamentadas sobre qué apps deben seguir teniendo acceso a sus datos personales. Para mantener la confianza de los usuarios, usa los datos de manera responsable y sé transparente cuando recopiles y uses su información.

La mayoría de las fuentes de datos de complicaciones requieren el uso del Formato de Caras de Relojes

En las próximas versiones de Wear OS, incluida la Versión preliminar para desarrolladores de Wear OS 5, las caras de reloj deberán usar el Formato de Caras de Relojes para admitir complicaciones que contienen datos del usuario. Te recomendamos que actualices la cara de reloj para usar el Formato de Caras de Relojes. Obtén más información sobre estos cambios en las complicaciones.

Desactiva el cambio temporalmente para realizar pruebas

Esta función está habilitada de forma predeterminada. Para inhabilitar la marca de función que corresponde a este cambio con fines de prueba, usa el siguiente comando:

adb shell device_config put wear_services \
  com.google.wear.services.infra.flags.restrict_complications_flag false && \
  adb reboot

Cambios en Wear OS 5 que afectan a las apps orientadas a Android 14

Los siguientes cambios afectarán a tu app solo si actualizas la versión del SDK de destino a Android 14, la versión en la que se basa la Versión preliminar para desarrolladores de Wear OS 5.

Las apps siempre activas pueden pasar a segundo plano

A partir de la Versión preliminar para desarrolladores de Wear OS 5, el sistema mueve las apps siempre activas al segundo plano después de que son visibles en el modo ambiente durante un período determinado. Los usuarios pueden establecer el tiempo de espera en la configuración del sistema.

Si tu app siempre activa muestra información sobre una tarea del usuario en curso, como la reproducción de música o una sesión de entrenamiento, te recomendamos que mantengas visible la actividad en curso hasta que finalice la tarea. Para ello, usa la API de Ongoing Activity para publicar una notificación continua que esté vinculada a tu actividad siempre activa.

Para que el sistema reconozca la actividad en curso, el intent táctil de la notificación continua debe apuntar a tu actividad siempre activa, como se muestra en el siguiente fragmento de código:

// Create a pending intent that point to your always-on activity
val touchIntent =
    PendingIntent.getActivity(
        context,
        0,
        Intent(context, MyAlwaysOnActivity::class.java),
        PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
    )

val notificationBuilder =
    NotificationCompat.Builder(this, CHANNEL_ID)
    // ...
    .setOngoing(true)

val ongoingActivity =
    OngoingActivity.Builder(
        applicationContext, NOTIFICATION_ID, notificationBuilder
    )
    // ...
    .setTouchIntent(touchIntent)
    .build()

ongoingActivity.apply(applicationContext)

notificationManager.notify(
    NOTIFICATION_ID,
    notificationBuilder.build()
)

Desactiva el cambio temporalmente para realizar pruebas

Esta función está habilitada de forma predeterminada. Para inhabilitar la marca de función que corresponde a este cambio con fines de prueba, usa el siguiente comando:

adb shell device_config put wear_frameworks \
  com.google.android.clockwork.systemui.flags.ambiactive_components_expirable \
  false && adb reboot

Las apps de grabación de ejercicios deben declarar un tipo de servicio en primer plano

Si tu app registra ejercicio como parte de la sesión de entrenamiento de un usuario, debes especificar el tipo de servicio en primer plano de health en el servicio en primer plano que invoca ExerciseClient. Además, si tu app puede supervisar la información de ubicación durante la sesión de entrenamiento, también debes especificar el tipo de servicio en primer plano location:

<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <application ...>
      <!-- If your app can also monitor location information, use
           android:foregroundServiceType="health|location" instead. -->
      <service
          android:name=".MyExerciseSessionRecorder"
          android:foregroundServiceType="health">
      </service>
    </application>
</manifest>

Algunos dispositivos que no están en la muñeca permanecen desbloqueados por más tiempo

En los dispositivos compatibles que ejecutan la Versión preliminar para desarrolladores de Wear OS 5, el sistema detecta si el usuario lleva el dispositivo en la muñeca. Si el usuario desactiva la detección de muñeca y, luego, se quita el dispositivo de la muñeca, el sistema lo mantiene desbloqueado durante un período más largo del que tendría en cualquier otro caso.

Si tu app requiere un nivel de seguridad más alto, como cuando se muestran datos potencialmente sensibles o privados, primero verifica si la detección de muñeca está habilitada:

val wristDetectionEnabled =
        isWristDetectionAutoLockingEnabled(applicationContext)

Si el valor que se muestra de este método es false, pídele al usuario que acceda a una cuenta en tu app antes de mostrar contenido específico para el usuario.

El contenido arrastrable podría superponerse a los puntos de activación de gestos del sistema

A partir de la Versión preliminar para desarrolladores de Wear OS 5, el sistema trata los gestos de eventos de movimiento por separado de la navegación por gestos que se usa en la IU del sistema.

Si la IU de tu app incluye espacios arrastrables grandes que se superponen con las áreas de gestos del sistema, es posible que debas agregar rectángulos de exclusión de gestos del sistema para esas vistas. Para ello, llama a setSystemGestureExclusionRects() para indicar a la IU del sistema que ignore los gestos de navegación en las áreas determinadas. Esto es similar a la forma en que controlas los gestos conflictivos de la app en tu app para dispositivos móviles con el objetivo de proporcionar una experiencia de IU de borde a borde.

Puedes usar la API de setSystemGestureExclusionRects() para que la IU del sistema responda a las solicitudes de gestos de manera diferente. Por ejemplo, la IU del sistema podría mostrar sugerencias de IU adicionales, como una barra horizontal, para confirmar la intención del usuario.

Escalamiento de fuente no lineal

A partir de la Versión preliminar para desarrolladores de Wear OS 5, el sistema admite una escala de fuentes más fluida, especialmente en casos en los que los usuarios eligen tamaños de fuente más grandes, en componentes de la IU basados en vistas.

Restricciones a intents implícitos y pendientes

Si usas tarjetas en tu app, verifica si las restricciones para intents implícitos y pendientes afectan a los intents.

Algunas notificaciones aún no se pueden descartar

Cuando usas la versión para dispositivos móviles de tu app en un dispositivo con Android 14 (nivel de API 34) o versiones posteriores, los usuarios pueden descartar notificaciones que, en versiones anteriores, no se podían descartar.

Sin embargo, en la Versión preliminar para desarrolladores de Wear OS 5, estas notificaciones aún no se pueden descartar.

Otros cambios desde Android 14

Es probable que los siguientes cambios en Android 14 afecten a tu app para Wear OS.

Cambios en Android 14 que afectan a todas las apps

Cambios en Android 14 que afectan a las apps orientadas al nivel de API 34