Las APIs de la capa de datos de Wear OS consisten en varios tipos de clientes diferentes, que resultan útiles para diferentes tipos de datos y en diferentes condiciones de conectividad.
En esta página, se presenta cada tipo de cliente y se incluye una tabla que compara las funciones de los diferentes clientes. Con esta información, puedes seleccionar el conjunto de tipos de clientes que funciona mejor para tu app.
Cliente de datos
Un objeto DataClient
te permite leer o escribir en un DataItem
o Asset
:
Cada
DataItem
es una unidad de información que se transmite y sincroniza en todos los dispositivos cercanos que posee un usuario. UnDataItem
se almacena de forma persistente, y tu dispositivo puede leer su contenido hasta que se borre el elemento de datos.Un
Asset
está diseñado para cargas útiles de datos más grandes, como imágenes o archivos multimedia.
Cliente de mensajes
Un objeto MessageClient
puede enviar mensajes y es útil para llamadas de procedimiento remoto (RPC), como usar un dispositivo Wear OS para controlar la versión de tu app que se instaló en un dispositivo portátil.
Los mensajes son excelentes para solicitudes unidireccionales con sendMessage()
o para un modelo de comunicación de solicitud y respuesta con sendRequest()
. A diferencia de los clientes de datos, los clientes de mensajes necesitan que los nodos estén conectados a la red para enviar mensajes.
El método sendMessage()
es un esfuerzo máximo para entregar al nodo remoto y
no contiene ningún mecanismo de reintento integrado. Si el dispositivo de destino se desconecta antes de que comience la transferencia de red, el método muestra TARGET_NODE_NOT_CONNECTED
.
Cliente de canales
Un objeto ChannelClient
proporciona una comunicación orientada a flujos entre dispositivos. Un canal es un conducto de comunicación bidireccional entre dos nodos, que es útil para casos de uso como los siguientes:
- Transfiere archivos de datos entre dos o más dispositivos conectados cuando no hay Internet disponible.
ChannelClient
ahorra espacio en el disco en comparación conDataClient
, que crea una copia de los recursos en el dispositivo local antes de sincronizarse con dispositivos conectados. - Puedes enviar de manera confiable un archivo demasiado grande como para enviarlo con un
MessageClient
. - Transfiere datos transmitidos, como datos de voz desde el micrófono.
Después de abrir un canal, puedes enviar y recibir datos en un flujo de bytes continuo, en lugar de las unidades DataItem
discretas que requieren los clientes de datos.
Eres responsable de administrar el flujo de datos y mantener la coherencia de los datos. Los clientes de canal no ofrecen el mismo nivel de sincronización automática de datos que los clientes de datos.
Comparación de clientes
En la siguiente tabla, se comparan las capacidades de los diferentes clientes:
Tipo de cliente | Persistencia de datos | ¿Admite datos de más de 100 KB? | Red que se usará | ¿Funciona sin conexión? |
---|---|---|---|---|
Cliente de datos | Los datos se conservan de forma indefinida | Sí (usa objetos Asset ) |
Se prefiere Bluetooth. Se crea una copia de seguridad de los datos en la nube. Si Bluetooth está disponible, esta copia de seguridad se realiza de forma asíncrona. | Sí, para operaciones de lectura y escritura |
Cliente de mensajes | Sin persistencia ni reintento | No | Se prefiere Bluetooth, pero se puede usar Wi-Fi si es el único tipo de conexión disponible | No |
Cliente de canales | Sin persistencia (orientada a la conexión) | Sí | Se prefiere Bluetooth, pero se puede usar Wi-Fi si es el único tipo de conexión disponible | No |