Die Wearable Data Layer API ist Teil der Google Play-Dienste und bietet einen Kommunikationskanal zwischen Wearables (z. B. Smartwatches) und verbundenen Handheld-Geräten (in der Regel Smartphones). So lassen sich Daten zwischen den Geräten synchronisieren und übertragen.
Hinweis:Diese API ist nur auf Wear OS-Smartwatches und gekoppelten Android-Geräten verfügbar. Bei Wear OS-Smartwatches, die mit iOS-Smartphones gekoppelt sind, können Apps andere cloudbasierte APIs abfragen, wenn eine Internetverbindung verfügbar ist. Weitere Informationen zu diesen anderen APIs finden Sie unter Netzwerkzugriff und Synchronisierung unter Wear OS.
Achtung:Da die APIs der Datenebene für die Kommunikation zwischen Smartphones und Wearables entwickelt wurden, sind dies die einzigen APIs, mit denen Sie die Kommunikation zwischen diesen Geräten einrichten können. Versuchen Sie beispielsweise nicht, Low-Level-Sockets zu öffnen, um einen Kommunikationskanal zu erstellen.
Gängige Anwendungsfälle
Die Data Layer API ist besonders nützlich für Fitness- und Medienanwendungen.
Fitness-Apps
Trainingsdaten von einer Wear OS-App an eine mobile App senden Fitness-Apps müssen häufig die von einer Smartwatch erfassten Trainingsdaten in eine mobile App oder in Health Connect schreiben. Wenn Sie die Data Layer API zur Datenübertragung verwenden, verwenden Sie einen Nachrichtenclient, um Trainingsdaten von der Wear OS-App an die mobile App zu senden, um sie in Health Connect zu speichern.
Livedaten während eines Trainings zu Hause auf ein Mobilgerät streamen
Ein häufiges Szenario für ein Training zu Hause ist das Streaming von Herzfrequenzdaten von einem Wear OS-Gerät auf ein Mobilgerät und die Anzeige aktueller Herzfrequenzinformationen auf dem Display des Mobilgeräts. Verwende einen Kanalclient, um diese Daten zu streamen.
Medien-Apps
Wenn Sie einen Mediaplayer über die Smartwatch pausieren, fortsetzen, starten oder beenden möchten, verwenden Sie einen Nachrichtenclient.
Kommunikationsoptionen
Die Daten werden auf eine der folgenden Arten übertragen:
- Direkt, wenn eine Bluetooth-Verbindung zwischen dem Wear OS-Gerät und einem anderen Gerät besteht.
- Über ein verfügbares Netzwerk wie LTE oder WLAN mit einem Netzwerkknoten auf den Google-Servern als Vermittler.
Alle Data Layer-Clients können Daten entweder über Bluetooth oder über die Cloud austauschen, je nachdem, welche Verbindungen für die Geräte verfügbar sind. Angenommen, für die Übertragung von Daten über die Datenschicht werden irgendwann Server von Google verwendet.
Bluetooth
Wenn Geräte über Bluetooth verbunden sind, verwendet die Datenebene diese Verbindung. Zwischen den Geräten gibt es einen einzigen verschlüsselten Kanal, der die standardmäßige Bluetooth-Verschlüsselung verwendet, die von den Google Play-Diensten verwaltet wird.
Cloud
Wenn Bluetooth nicht verfügbar ist, werden Daten automatisch über Google Cloud geleitet. Alle über Google Cloud übertragenen Daten werden Ende-zu-Ende verschlüsselt.
Sicherheit der Kommunikation
Die Google Play-Dienste erzwingen die folgenden Einschränkungen, um die Kommunikation zwischen der auf einem Wear OS-Gerät installierten App und derselben App, die auf einem Mobilgerät in der Nähe installiert ist, sicherer zu machen:
- Der Paketname muss auf allen Geräten übereinstimmen.
- Die Signatur des Pakets muss auf allen Geräten übereinstimmen.
Unabhängig vom Verbindungstyp haben keine anderen Apps Zugriff auf die Daten.
Einrichten
Für die Wearable Data Layer API gelten die folgenden Abhängigkeiten:
- Die aktuelle Version der Google Play-Dienste
- Ein Wear OS-Gerät oder ein Wear OS-Emulator.
Fügen Sie der build.gradle-Datei Ihres Wear-Moduls die folgende Abhängigkeit hinzu:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Erstkoppelung vereinfachen
Horologist bietet mehrere Hilfsbibliotheken zusätzlich zu den Plattform-APIs. Es enthält eine Bibliothek für die Datenebene, die beim Herstellen einer Verbindung zwischen einem Mobilgerät und einem Wear OS-Gerät hilft. Außerdem bietet sie praktische APIs für Folgendes:
- Installieren Sie die App auf dem anderen Gerät.
- Starten Sie die App auf dem anderen Gerät.
- Eine bestimmte Aktivität auf dem anderen Gerät starten.
- Öffnen Sie die Companion-App.
Auf die Datenebene zugreifen
Wenn Sie die Data Layer API aufrufen möchten, verwenden Sie die Klasse Wearable
, um Instanzen der verschiedenen Clientklassen abzurufen, z. B. DataClient
und MessageClient
.
Weitere Informationen finden Sie im Beispiel für die Datenebene.
Minimalen Client verwenden
Im folgenden Beispielcode wird gezeigt, wie ein Client erstellt wird:
Kotlin
val dataClient: DataClient = Wearable.getDataClient(context)
Java
DataClient dataClient = Wearable.getDataClient(context);
Der Kontext kann ein beliebiger gültiger Android-Kontext sein. Wenn Sie die API im Rahmen eines Activity
verwenden, verwenden Sie die Methode getDataClient()
der Klasse Wearable
. So können bestimmte Interaktionen als Dialoge und nicht als Benachrichtigungen angezeigt werden, z. B. wenn der Nutzer aufgefordert wird, seine Version der Google Play-Dienste zu aktualisieren.
Standardmäßig werden Rückrufe an Listener im Haupt-UI-Thread der App ausgeführt. Wenn Callbacks in einem anderen Thread ausgeführt werden sollen, verwenden Sie ein WearableOptions
-Objekt, um einen benutzerdefinierten Looper
anzugeben:
Kotlin
runBlocking { Wearable.getDataClient(context, options) }
Java
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Weitere Informationen finden Sie in der Referenz zu WearableOptions.Builder
.
Clientinstanzen nach Bedarf neu erstellen
Wearable API-Clients wie DataClient
und MessageClient
sind kostengünstig zu erstellen. Anstatt die Kunden zu behalten, sollten Sie sie nach Bedarf neu erstellen und dabei den Stil verwenden, der zu Ihrer App passt.
Der Clientstatus, z. B. die registrierten Listener, wird für alle Clients freigegeben und beibehalten, wenn die Google Play-Dienste aktualisiert werden, während eine App ausgeführt wird.