Die Wearable Data Layer API, die Teil der Google Play-Dienste ist, bietet einen Kommunikationskanal zwischen Wearables (z. B. Smartwatches) und verbundenen Mobilgeräten (in der Regel Smartphones). So können Daten zwischen den Geräten synchronisiert und übertragen werden.
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 besteht. Weitere Informationen zu diesen anderen APIs findest du unter Netzwerkzugriff und Synchronisierung auf Wear OS.
Achtung:Da die Data Layer APIs für die Kommunikation zwischen Smartphones und Wearables entwickelt wurden, sind dies die einzigen APIs, die Sie verwenden können, um die Kommunikation zwischen diesen Geräten einzurichten. Versuchen Sie beispielsweise nicht, Low-Level-Sockets zu öffnen, um einen Kommunikationskanal zu erstellen.
Häufige Anwendungsfälle
Die Data Layer API ist besonders nützlich für Fitness- und Medienanwendungsfälle.
Fitness-Apps
Trainingsdaten von Wear OS-App an 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 zum Übertragen von Daten verwenden, nutzen Sie einen Nachrichtenclient, um Trainingsdaten von der Wear OS-App an die mobile App zu senden und in Health Connect zu schreiben.
Livedaten während eines Trainings zu Hause auf das Mobilgerät streamen
Ein häufiges Szenario für das Training zu Hause ist das Streamen von Herzfrequenzdaten von einem Wear OS-Gerät auf ein Mobilgerät und die Anzeige aktueller Herzfrequenzinformationen auf dem Display des Mobilgeräts. Verwenden Sie zum Streamen dieser Daten einen Channel-Client.
Medien-Apps
Wenn du einen Media Player über die Aktion „Pause/Fortsetzen/Starten/Beenden“ von der Smartwatch zum Smartphone steuern möchtest, verwende 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, wobei ein Netzwerkknoten auf den Google-Servern als Vermittler dient.
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. Es ist davon auszugehen, dass Daten, die über die Datenschicht übertragen werden, irgendwann auf Google-eigenen Servern gespeichert werden.
Bluetooth
Wenn Geräte über Bluetooth verbunden sind, wird diese Verbindung von Data Layer verwendet. Zwischen den Geräten wird ein einzelner verschlüsselter Kanal verwendet, der von den Google Play-Diensten verwaltet wird und auf der standardmäßigen Bluetooth-Verschlüsselung basiert.
Cloud
Daten werden automatisch über Google Cloud weitergeleitet, wenn Bluetooth nicht verfügbar ist. Alle über Google Cloud übertragenen Daten sind End-to-End-verschlüsselt.
Sicherheit der Kommunikation
Die Google Play-Dienste erzwingen die folgenden Einschränkungen, um eine sicherere Kommunikation zwischen der auf einem Wear OS-Gerät installierten App und derselben App auf einem in der Nähe befindlichen Mobilgerät zu ermöglichen:
- 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
Die Wearable Data Layer API hat die folgenden Abhängigkeiten:
- Die aktuelle Version der Google Play-Dienste.
- Ein Wear OS-Gerät oder ein Wear OS-Emulator.
Fügen Sie die folgende Abhängigkeit in die Datei „build.gradle“ Ihres Wear-Moduls ein:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Erleichterung des ersten Kopplungsvorgangs
Horologist bietet mehrere Hilfsbibliotheken zusätzlich zu den Plattform-APIs. Sie enthält eine Datenebene-Bibliothek, mit der eine Verbindung zwischen einem Mobilgerät und einem Wear OS-Gerät hergestellt werden kann. Außerdem bietet sie praktische APIs für folgende Aufgaben:
- 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
- Starten Sie die Companion-App.
Auf die Datenschicht zugreifen
Wenn Sie die Data Layer API aufrufen möchten, verwenden Sie die Klasse Wearable
, um Instanzen der verschiedenen Clientklassen wie DataClient
und MessageClient
abzurufen.
Weitere Informationen finden Sie im DataLayer-Beispiel.
Minimalen Client verwenden
Im folgenden Beispielcode sehen Sie, wie Sie einen Client erstellen:
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, nutzen Sie die Methode getDataClient()
der Klasse Wearable
. So können bestimmte Interaktionen als Dialogfelder statt als Benachrichtigungen angezeigt werden, z. B. wenn der Nutzer aufgefordert wird, seine Version der Google Play-Dienste zu aktualisieren.
Standardmäßig erfolgen Rückrufe an Listener im Haupt-UI-Thread der App. Wenn Sie möchten, dass Rückrufe in einem anderen Thread erfolgen, 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 Clients beizubehalten, sollten Sie sie bei Bedarf mit dem für Ihre App geeigneten Stil neu erstellen.
Der Clientstatus, z. B. die Menge der registrierten Listener, wird für alle Clients freigegeben und bleibt erhalten, wenn die Google Play-Dienste aktualisiert werden, während eine App ausgeführt wird.