Die Wearable Data Layer API, die Teil der Google Play-Dienste ist, bietet einen Kommunikationskanal zwischen Wearable-Geräten (z. B. Smartwatches) und verbundenen Handheld-Geräten (in der Regel Smartphones). Sie ermöglicht das Synchronisieren und Übertragen von Daten zwischen den Geräten.
Hinweis:Diese API ist nur auf Wear OS-Smartwatches und gekoppelten Android-Geräten verfügbar. Auf 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 finden Sie unter Netzwerkzugriff und Synchronisierung auf Wear OS.
Achtung:Da die Data Layer APIs für die Kommunikation zwischen Handhelds und Wearables entwickelt wurden, sind sie 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.
Häufige Anwendungsfälle
Verwenden Sie die Data Layer API, wenn die Interaktion ausschließlich zwischen der Smartwatch und dem Smartphone stattfindet. Beispiele:
- Fernbedienung: Die Smartwatch dient als Fernbedienung für das Smartphone (z.B. zum Steuern eines Musikplayers, zum Wechseln von Folien in einer Präsentation oder als Kameraauslöser).
- Starten von Handheld-Apps: Die Funktion „Auf dem Smartphone öffnen“.
- Authentifizierungsüberbrückung: Senden eines Sitzungstokens vom Smartphone an die Smartwatch bei der Ersteinrichtung.
In vielen gängigen Szenarien sollten Sie stattdessen Ihre vorhandene Cloud-Infrastruktur verwenden, z. B.:
- Daten speichern: Workouts, Notizen.
- Inhalte abrufen: Eine Liste der letzten Workouts laden, Musik herunterladen, Wetterdaten abrufen.
- Status synchronisieren: Wenn der Nutzer sein Profilbild im Web ändert, wird die Smartwatch über die Cloud aktualisiert und nicht durch Abfragen des Smartphones.
Verwenden Sie für diese Szenarien Ihre eigenen vorhandenen Endpunkte und Ihre eigene Infrastruktur anstelle der Data Layer API.
Kommunikationsoptionen
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. Gehen Sie davon aus, dass Daten, die über Data Layer übertragen werden, irgendwann Google-eigene Server verwenden.
Bluetooth
Wenn Geräte über Bluetooth verbunden sind, verwendet Data Layer diese Verbindung. Zwischen den Geräten besteht ein einzelner verschlüsselter Kanal, der die standardmäßige Bluetooth-Verschlüsselung verwendet und von den Google Play-Diensten verwaltet wird.
Cloud
Daten werden automatisch über Google Cloud weitergeleitet, wenn Bluetooth nicht verfügbar ist. Alle über Google Cloud übertragenen Daten sind 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 Handheld-Gerä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.
Einrichtung
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 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")
}
Ersteinrichtung erleichtern
Horologist bietet mehrere Hilfsbibliotheken zusätzlich zu den Plattform-APIs. Dazu gehört eine Data Layer-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:
- Die App auf dem anderen Gerät installieren.
- Die App auf dem anderen Gerät starten.
- Eine bestimmte Aktivität auf dem anderen Gerät starten.
- Die Companion-App starten.
Auf die Datenschicht zugreifen
Wenn Sie die Data Layer API aufrufen möchten, verwenden Sie die Wearable Klasse, um Instanzen der
verschiedenen Clientklassen wie DataClient und MessageClient abzurufen.
Weitere Informationen finden Sie im DataLayer-Beispiel.
Minimalen Client verwenden
Ein Client wird mit dem folgenden Beispielcode erstellt:
val dataClient = Wearable.getDataClient(this)
val available = try { GoogleApiAvailability.getInstance() .checkApiAvailability(client) .await() true } catch (e: AvailabilityException) { // API is not available in this device. false }
Der Kontext kann ein beliebiger gültiger Android-Kontext sein. Wenn Sie die API im Rahmen einer Activity verwenden, verwenden Sie die Methode getDataClient() der Klasse Wearable. Dadurch werden bestimmte Interaktionen als Dialogfelder und nicht als Benachrichtigungen angezeigt, z. B. wenn der Nutzer aufgefordert wird, seine Version der Google Play-Dienste zu aktualisieren.
Standardmäßig werden Callbacks an Listener im Haupt-UI-Thread der App ausgeführt. Wenn
Callbacks in einem anderen Thread ausgeführt werden sollen, geben Sie mit einem WearableOptions-Objekt einen benutzerdefinierten Looper an.
Weitere Informationen finden Sie in der WearableOptions.Builder Referenz.
Clientinstanzen nach Bedarf neu erstellen
Wearable API-Clients wie DataClient und MessageClient sind
kostengünstig zu erstellen. Anstatt die Clients also beizubehalten, erstellen Sie sie bei Bedarf neu und verwenden Sie dabei den Stil, der für Ihre App am besten geeignet ist.
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.