La API de Wearable Data Layer, que forma parte de los Servicios de Google Play, proporciona un canal de comunicación entre dispositivos wearables (como relojes inteligentes) y dispositivos de mano conectados (por lo general, smartphones). Es una forma de sincronizar y transferir datos entre los dispositivos.
Nota: Esta API solo está disponible en relojes Wear OS y dispositivos Android vinculados. En el caso de los relojes con Wear OS vinculados a teléfonos iOS, las apps pueden consultar otras APIs basadas en la nube si hay conectividad a Internet disponible. Para obtener más información sobre estas otras APIs, consulta Acceso a la red y sincronización en Wear OS.
Precaución: Debido a que las APIs de Data Layer están diseñadas para la comunicación entre dispositivos portátiles y wearables, son las únicas APIs que puedes usar para configurar la comunicación entre estos dispositivos. Por ejemplo, no intentes abrir sockets de bajo nivel para crear un canal de comunicación.
Casos de uso comunes
La API de Data Layer es particularmente útil para casos de uso de fitness y contenido multimedia.
Apps relacionadas con el estado físico
Envío de datos de ejercicio de la app para Wear OS a la app para dispositivos móviles. A menudo, las apps de fitness deben escribir los datos de ejercicio capturados por un reloj en una app para dispositivos móviles o en Health Connect. Si usas la API de Data Layer para transferir datos, usa un cliente de mensajes para enviar datos de ejercicio de la app para Wear OS a la app para dispositivos móviles para escribir en Health Connect.
Transmite datos en vivo al dispositivo móvil durante un entrenamiento en casa
Un escenario común de entrenamiento en casa es transmitir datos de frecuencia cardíaca desde un dispositivo Wear OS a un dispositivo móvil y mostrarle al usuario información actualizada de la frecuencia cardíaca en la pantalla de su dispositivo móvil. Para transmitir estos datos, usa un cliente de canal.
Apps multimedia
Para controlar un reproductor multimedia a través de la acción de pausar, reanudar, iniciar o finalizar desde el reloj al teléfono, usa un cliente de mensajes.
Opciones de comunicación
Los datos se transfieren de una de las siguientes maneras:
- Directamente, cuando hay una conexión Bluetooth establecida entre el dispositivo Wear OS y otro dispositivo
- A través de una red disponible, como LTE o Wi-Fi, con un nodo de red en los servidores de Google como intermediario
Todos los clientes de Data Layer pueden intercambiar datos a través de Bluetooth o la nube, según las conexiones disponibles para los dispositivos. Supongamos que los datos transmitidos a través de Data Layer pueden, en algún momento, usar servidores propiedad de Google.
Bluetooth
Cuando los dispositivos se conectan a través de Bluetooth, Data Layer usa esta conexión. Existe un solo canal encriptado entre los dispositivos que usa la encriptación estándar de Bluetooth, administrada por los Servicios de Google Play.
Nube
Los datos se enrutan automáticamente a través de Google Cloud cuando el Bluetooth no está disponible. Todos los datos que se transfieren a través de Google Cloud están encriptados de extremo a extremo.
Seguridad de las comunicaciones
Los Servicios de Google Play aplican las siguientes restricciones para proporcionar una comunicación más segura entre la app instalada en un dispositivo Wear OS y la misma app instalada en un dispositivo de mano cercano:
- El nombre del paquete debe coincidir en todos los dispositivos.
- La firma del paquete debe coincidir en todos los dispositivos.
Ninguna otra app tiene acceso a los datos, independientemente del tipo de conexión.
Configuración
La API de Wearable Data Layer tiene las siguientes dependencias:
- La versión más reciente de los Servicios de Google Play
- Un dispositivo con Wear OS o un emulador con Wear OS
Incluye la siguiente dependencia en el archivo build.gradle de tu módulo de Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Facilita el proceso de vinculación inicial
Horologist proporciona varias bibliotecas de ayuda además de las APIs de la plataforma. Incluye una biblioteca de capas de datos que ayuda a establecer una conexión entre un dispositivo móvil y un dispositivo Wear OS. Además, proporciona APIs convenientes para realizar las siguientes acciones:
- Instala la app en el otro dispositivo.
- Inicia la app en el otro dispositivo.
- Inicia una actividad específica en el otro dispositivo.
- Inicia la app complementaria.
Cómo acceder a la capa de datos
Para llamar a la API de Data Layer, usa la clase Wearable
para obtener instancias de las diferentes clases de cliente, como DataClient
y MessageClient
.
Para obtener más información, consulta el ejemplo de DataLayer.
Cómo usar un cliente mínimo
Para crear un cliente, consulta el siguiente código de ejemplo:
Kotlin
val dataClient: DataClient = Wearable.getDataClient(context)
Java
DataClient dataClient = Wearable.getDataClient(context);
El contexto puede ser cualquier contexto de Android válido. Si usas la API dentro del alcance de una Activity
, usa el método getDataClient()
de la clase Wearable
. Esto permite que ciertas interacciones aparezcan como diálogos en lugar de notificaciones, como cuando se le solicita al usuario que actualice su versión de los Servicios de Google Play.
De forma predeterminada, las devoluciones de llamada a los objetos de escucha se realizan en el subproceso de IU principal de la app. Para realizar devoluciones de llamada en un subproceso diferente, usa un objeto WearableOptions
para especificar un Looper
personalizado:
Kotlin
runBlocking { Wearable.getDataClient(context, options) }
Java
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Para obtener más información, consulta la referencia de WearableOptions.Builder
.
Vuelve a crear instancias de cliente según sea necesario
Los clientes de la API de Wearable, como DataClient
y MessageClient
, no son costosos de crear. En lugar de conservar los clientes, vuelve a crearlos según los necesites con el estilo que se adapte a tu app.
El estado del cliente, como el conjunto de objetos de escucha registrados, se comparte entre todos los clientes y se conserva si los Servicios de Google Play se actualizan mientras se ejecuta una app.