Découvrir les appareils d'un réseau à l'aide des API Data Layer

Les appareils peuvent établir une connexion à Internet directement à l'aide d'une connexion Wi-Fi ou mobile, ou indirectement via un appareil Bluetooth associé.

Nœuds accessibles et à proximité

Un appareil est considéré comme accessible lorsqu'il est en ligne et qu'il peut communiquer avec un autre appareil, directement via le Bluetooth ou indirectement en utilisant le cloud comme intermédiaire.

Un appareil est considéré comme à proximité s'il peut être connecté directement via le Bluetooth, sans passer par le cloud.

Activités qui affectent le temps de reconnexion

Dans certains cas, le rétablissement de la connexion peut prendre jusqu'à quatre minutes. Voici quelques exemples de scénarios:

  • Inactivité d'un appareil Wear OS:si un appareil Wear OS est retiré du poignet de l'utilisateur ou s'il n'est pas utilisé activement pendant une période prolongée, le délai de reconnexion peut être prolongé.
  • État de veille:l'état Sommeil d'économie d'énergie d'un appareil portable peut limiter les processus en arrière-plan, ce qui peut augmenter le temps de reconnexion de l'appareil.
  • Interaction utilisateur:si l'utilisateur commence à interagir avec un appareil portable et un appareil Wear OS à peu près en même temps, le processus de reconnexion est souvent accéléré.

Découvrir tous les appareils à l'aide d'un client de nœud

Un objet NodeClient identifie les appareils Android connectés à un réseau et les diffuse dans la liste des appareils Android connectés à un réseau, quelle que soit la capacité de chaque appareil. Toutes les applications d'un appareil reçoivent ces notifications d'événements, par exemple lorsqu'un nouvel appareil rejoint le réseau ou qu'un appareil existant passe hors connexion.

La classe NodeClient est particulièrement utile pour détecter les appareils sur lesquels votre application n'est pas installée.

Découvrir des appareils spécifiques à l'aide d'un client de fonctionnalité

Un objet CapabilityClient fournit des informations sur les appareils du réseau Wear OS compatibles avec des fonctionnalités spécifiques de l'application. Une fonctionnalité est une fonctionnalité définie par une application au moment de la compilation ou configurée de manière dynamique au moment de l'exécution.

Par exemple, une application Android mobile peut annoncer qu'elle prend en charge la télécommande pour la lecture de vidéos. La version Wear OS de cette application peut utiliser CapabilityClient pour vérifier si la version mobile de l'application est installée sur un appareil à proximité et est compatible avec cette fonctionnalité. Si c'est le cas, l'application Wear OS peut afficher des boutons de lecture et de pause afin que les utilisateurs puissent contrôler une vidéo en cours de lecture sur leur appareil mobile depuis leur appareil Wear OS. La diffusion de fonctionnalités fonctionne également dans le sens opposé. Les applications Wear OS peuvent répertorier les fonctionnalités qu'elles prennent en charge.

Vérifier les nouvelles fonctionnalités de votre application

Utilisez CapabilityClient pour déterminer l'ID de nœud d'un appareil avec lequel vous devez communiquer. Par exemple, si vous devez vérifier la présence d'une nouvelle fonctionnalité dans votre application sur des appareils portables, créez une capacité pour cette nouvelle fonctionnalité côté portable. Votre application Wear OS peut ensuite interroger les appareils compatibles avec cette fonctionnalité. Si cette fonctionnalité est manquante sur tous les appareils, cela signifie que l'utilisateur ne dispose pas d'une version de votre application compatible avec cette fonctionnalité, que vous devez gérer correctement dans la logique de votre application. Si vous partez du principe que l'appareil portable est toujours le bon nœud avec lequel communiquer, vos messages risquent de ne pas être distribués, car l'application pour téléphone n'est pas compatible avec cette fonctionnalité.

Déterminer si un appareil Wear OS est le seul sur un réseau

Vous pouvez utiliser CapabilityClient pour vérifier si votre application doit fonctionner en mode autonome, car aucun autre appareil Android n'est à proximité. Si vous transmettez FILTER_ALL, aucun autre appareil ne doit apparaître dans les résultats.