Sélectionner un type de client

Les API de la couche de données 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.

Quand utiliser l'API Data Layer ?

Utilisez l'API Data Layer lorsque l'interaction se fait strictement entre la montre locale et le téléphone local. Pour obtenir des exemples détaillés, consultez la section Cas d'utilisation courants de la couche de données.

Client de données

Un objet DataClient vous permet de lire ou d'écrire dans un DataItem ou Asset :

  • Chaque DataItem est une unité d'informations diffusée et synchronisée sur tous les appareils à proximité appartenant à un utilisateur. Un DataItem est stocké de manière persistante, et votre appareil peut lire son contenu jusqu'à ce qu'il 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 messages

Un objet MessageClient peut envoyer des messages et convient pour les appels de procédure à distance (RPC), par exemple pour contrôler la version de votre application installée sur un appareil portable à l'aide d'un appareil Wear OS.

Les messages sont parfaits pour les requêtes unidirectionnelles à l'aide de sendMessage() ou pour un modèle de communication requête/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 envoyer des messages.

La méthode sendMessage() est une tentative de livraison au nœud distant, et 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, par exemple :

  • 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 sur DataClient, ce qui crée une copie des éléments 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 que vous avez ouvert un canal, 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 de canaux n'offrent pas le même niveau de synchronisation automatique des données que les clients de 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-t-il hors connexion ?
Client de données Les données sont conservées indéfiniment Oui (utilisez Asset objets) Bluetooth préféré. Les données sont sauvegardées dans le cloud. Si le Bluetooth est disponible, cette sauvegarde est effectuée de manière asynchrone. Oui, en lecture et en écriture
Client de messages Aucune persistance ni nouvelle tentative Non Bluetooth préféré, mais peut utiliser le Wi-Fi s'il s'agit du seul type de connexion disponible Non
Client de canaux Aucune persistance (orientée connexion) Oui Bluetooth préféré, mais peut utiliser le Wi-Fi s'il s'agit du seul type de connexion disponible Non

Pour en savoir plus sur l'utilisation des API de la couche de données, consultez le guide Synchroniser les données. Pour en savoir plus sur les considérations relatives à l'alimentation lors de l'utilisation des API de la couche de données, consultez le Économiser de l'énergie guide.