Übersicht über die Data Layer API

Der cloudbasierte Knoten wird von einem Google-eigenen Server gesteuert.
Abbildung 1. Beispiel für ein Netzwerk von Knoten mit Handheld- und Wear OS-Geräten.

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:

  1. Direkt, wenn eine Bluetooth-Verbindung zwischen dem Wear OS-Gerät und einem anderen Gerät besteht.
  2. Ü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.