L'API Wearable Data Layer, qui fait partie des services Google Play, fournit un canal de communication entre les appareils connectés (comme les montres connectées) et les appareils portables connectés (généralement des smartphones). Il s'agit d'un moyen de synchroniser et de transférer des données entre les appareils.
Remarque:Cette API n'est disponible que sur les montres Wear OS et les appareils Android associés. Pour les montres Wear OS associées à des téléphones iOS, les applications peuvent interroger d'autres API basées sur le cloud si la connexion Internet est disponible. Pour en savoir plus sur ces autres API, consultez la section Accès au réseau et synchronisation sur Wear OS.
Attention:Étant donné que les API de la couche de données sont conçues pour la communication entre les appareils portables et les accessoires connectés, ce sont les seules que vous pouvez utiliser pour configurer la communication entre ces appareils. Par exemple, n'essayez pas d'ouvrir des sockets de bas niveau pour créer un canal de communication.
Cas d'utilisation courants
L'API Data Layer est particulièrement utile pour les cas d'utilisation liés à la remise en forme et aux médias.
Applis de fitness
Envoyer des données d'exercice depuis une application Wear OS vers une application mobile Les applications de fitness doivent souvent écrire les données d'exercice capturées par une montre dans une application mobile ou dans Santé Connect. Si vous utilisez l'API Data Layer pour transférer des données, utilisez un client de messagerie pour envoyer les données d'exercice de l'application Wear OS à l'application mobile afin d'écrire dans Santé Connect.
Diffuser des données en direct sur un appareil mobile pendant un entraînement à domicile
Un scénario d'entraînement à domicile courant consiste à diffuser des données de fréquence cardiaque depuis un appareil Wear OS vers un appareil mobile et à afficher les informations de fréquence cardiaque à jour de l'utilisateur sur l'écran de son appareil mobile. Pour diffuser ces données, utilisez un client de canal.
Applications multimédias
Pour contrôler un lecteur multimédia via les actions de mise en pause/reprise/démarrage/arrêt de la montre vers le téléphone, utilisez un client de messages.
Options de communication
Les données sont transférées de l'une des manières suivantes:
- Directement, lorsqu'une connexion Bluetooth est établie entre l'appareil Wear OS et un autre appareil.
- Sur un réseau disponible, tel que LTE ou Wi-Fi, à l'aide d'un nœud réseau sur les serveurs de Google comme intermédiaire.
Tous les clients de la couche de données peuvent échanger des données via le Bluetooth ou le cloud, en fonction des connexions disponibles pour les appareils. Supposons que les données transmises à l'aide de la couche de données puissent à un moment donné utiliser les serveurs de Google.
Bluetooth
Lorsque les appareils sont connectés via le Bluetooth, la couche de données utilise cette connexion. Il existe un seul canal chiffré entre les appareils, qui utilise le chiffrement Bluetooth standard, géré par les services Google Play.
Cloud
Les données sont automatiquement acheminées via Google Cloud lorsque le Bluetooth n'est pas disponible. Toutes les données transférées via Google Cloud sont chiffrées de bout en bout.
Sécurité des communications
Les services Google Play appliquent les restrictions suivantes pour assurer une communication plus sécurisée entre l'application installée sur un appareil Wear OS et la même application installée sur un appareil portable à proximité:
- Le nom du package doit être identique sur tous les appareils.
- La signature du package doit être identique sur tous les appareils.
Aucune autre application n'a accès aux données, quel que soit le type de connexion.
Configuration
L'API Wearable Data Layer dispose des dépendances suivantes :
- La dernière version des services Google Play
- Un appareil Wear OS ou un émulateur Wear OS
Ajoutez la dépendance suivante dans le fichier build.gradle de votre module Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Faciliter le processus d'association initial
Horologist fournit plusieurs bibliothèques d'assistance en plus des API de la plate-forme. Il comprend une bibliothèque de couches de données qui permet d'établir une connexion entre un appareil mobile et un appareil Wear OS. De plus, il fournit des API pratiques pour effectuer les opérations suivantes:
- Installez l'application sur l'autre appareil.
- Lancez l'application sur l'autre appareil.
- Lancez une activité spécifique sur l'autre appareil.
- Lancez l'application associée.
Accéder à la couche de données
Pour appeler l'API Data Layer, utilisez la classe Wearable
afin d'obtenir des instances des différentes classes de client, telles que DataClient
et MessageClient
.
Pour en savoir plus, consultez l'exemple DataLayer.
Utiliser un client minimal
Pour créer un client, consultez l'exemple de code suivant:
val dataClient: DataClient = Wearable.getDataClient(context)
DataClient dataClient = Wearable.getDataClient(context);
Le contexte peut correspondre à n'importe quel contexte Android valide. Si vous utilisez l'API dans le cadre d'une Activity
, utilisez la méthode getDataClient()
de la classe Wearable
. Certaines interactions peuvent ainsi apparaître sous la forme de boîtes de dialogue plutôt que de notifications (par exemple, lorsque l'utilisateur est invité à mettre à jour sa version des services Google Play).
Par défaut, les rappels des écouteurs sont effectués sur le thread UI principal de l'application. Pour effectuer des rappels sur un autre thread, utilisez un objet WearableOptions
pour spécifier un Looper
personnalisé:
runBlocking { Wearable.getDataClient(context, options) }
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Pour en savoir plus, consultez la documentation de référence sur WearableOptions.Builder
.
Recréez les instances client si nécessaire.
La création des clients de l'API Wearable, tels que DataClient
et MessageClient
, est peu coûteuse. Au lieu de conserver les clients, recréez-les lorsque vous en avez besoin, en utilisant le style qui convient à votre application.
L'état du client, tel que l'ensemble des écouteurs enregistrés, est partagé avec tous les clients. Il est conservé en cas de mise à jour des services Google Play pendant l'exécution d'une application.