Übersicht über die Data Layer API

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

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:

  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 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:

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.