Les API Data Layer de Wear OS se composent de plusieurs types de clients, qui sont utiles pour différents types de données et dans différentes conditions de connectivité.
Cette page présente chaque type de client et inclut un tableau comparant les fonctionnalités des différents clients. Grâce à ces informations, vous pouvez sélectionner l'ensemble de types de clients qui convient le mieux à votre application.
Client de données
Un objet DataClient
vous permet de lire ou d'écrire dans un DataItem
ou un Asset
:
Chaque
DataItem
est une unité d'informations diffusée et synchronisée sur tous les appareils à proximité appartenant à un utilisateur. UnDataItem
est stocké de manière persistante, et votre appareil peut lire son contenu jusqu'à ce que l'élément de données soit supprimé.Un
Asset
est destiné aux charges utiles de données plus volumineuses, telles que des images ou des fichiers multimédias.
Client de messagerie
Un objet MessageClient
peut envoyer des messages et convient pour les appels de procédure à distance (RPC), tels que l'utilisation d'un appareil Wear OS pour contrôler la version de votre application installée sur un appareil portable.
Les messages conviennent parfaitement pour les requêtes unidirectionnelles à l'aide de sendMessage()
ou pour un modèle de communication requête et réponse à l'aide de sendRequest()
. Contrairement aux clients de données, les clients de messages ont besoin que les nœuds soient connectés au réseau pour pouvoir envoyer des messages.
La méthode sendMessage()
est une tentative optimale de diffusion au nœud distant. Elle ne contient aucun mécanisme de nouvelle tentative intégré. Si l'appareil cible se déconnecte avant le début du transfert réseau, la méthode renvoie TARGET_NODE_NOT_CONNECTED
.
Client de canaux
Un objet ChannelClient
fournit une communication orientée flux entre les appareils. Un canal est un canal de communication bidirectionnel entre deux nœuds, ce qui est utile pour les cas d'utilisation suivants :
- Transférer des fichiers de données entre plusieurs appareils connectés lorsque la connexion Internet n'est pas disponible.
ChannelClient
permet d'économiser de l'espace disque surDataClient
, ce qui crée une copie des composants sur l'appareil local avant la synchronisation avec les appareils connectés. - Envoyer de manière fiable un fichier trop volumineux pour l'envoi à l'aide d'un
MessageClient
. - Transférer des données diffusées, telles que des données vocales depuis le micro.
Une fois un canal ouvert, vous pouvez envoyer et recevoir des données dans un flux d'octets continu, plutôt que dans les unités DataItem
discrètes requises par les clients de données.
Vous êtes responsable de la gestion du flux de données et de la cohérence des données. Les clients canaux n'offrent pas le même niveau de synchronisation automatique des données que les clients données.
Comparaison des clients
Le tableau suivant compare les fonctionnalités des différents clients :
Type de client | Persistance des données | Accepte-t-il les données de plus de 100 Ko ? | Réseau à utiliser | Fonctionne hors connexion ? |
---|---|---|---|---|
Client de données | Les données sont conservées indéfiniment | Oui (utiliser les objets
Asset ) |
Bluetooth de préférence. Les données sont sauvegardées dans le cloud. Si le Bluetooth est disponible, cette sauvegarde est effectuée de manière asynchrone. | Oui, pour la lecture et l'écriture |
Client de messages | Sans persistance ni nouvelle tentative | Non | Bluetooth de préférence, mais le Wi-Fi peut être utilisé s'il s'agit du seul type de connexion disponible | Non |
Client de canaux | Sans persistance (orienté connexion) | Oui | Bluetooth de préférence, mais le Wi-Fi peut être utilisé s'il s'agit du seul type de connexion disponible | Non |