Die Wearable Data Layer API, die Teil der Google Play-Dienste ist, bietet einen Kommunikationskanal zwischen Wearables (z. B. Smartwatches) und verbundenen Mobilgeräten (normalerweise Smartphones). Sie dient dazu, Daten zwischen den Geräten zu synchronisieren und zu ü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 findest du unter Netzwerkzugriff und Synchronisierung unter Wear OS.
Achtung: Da die Data Layer APIs für die Kommunikation zwischen Smartphones und Wearables konzipiert sind, können Sie nur diese APIs verwenden, um die Kommunikation zwischen diesen Geräten einzurichten. Versuchen Sie beispielsweise nicht, Low-Level-Sockets zu öffnen, um einen Kommunikationskanal zu erstellen.
Gängige Anwendungsfälle
Verwende die Data Layer API, wenn die Interaktion ausschließlich zwischen der Smartwatch und dem Smartphone stattfindet. Beispiel:
- Fernbedienung: Die Smartwatch fungiert als Fernbedienung für das Smartphone (z.B. zum Steuern eines Musikplayers auf dem Smartphone, zum Wechseln von Folien in einer Präsentation oder als Kameraauslöser).
- App-Start auf dem Smartphone: Die Schaltfläche „Auf Smartphone öffnen“.
- Authentication Bridging: Während der Ersteinrichtung wird ein Sitzungstoken vom Smartphone an die Smartwatch gesendet.
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 Trainings laden, Musik herunterladen, Wetterdaten abrufen.
- Synchronisierungsstatus: Wenn der Nutzer sein Profilbild im Web ändert, wird die Smartwatch über die Cloud aktualisiert, nicht über das Smartphone.
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 Datenebene-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 die Datenschicht übertragen werden, irgendwann über Google-eigene Server geleitet werden.
Bluetooth
Wenn Geräte über Bluetooth verbunden sind, verwendet die Datenebene diese Verbindung. Es gibt einen einzigen verschlüsselten Kanal zwischen den Geräten, der die standardmäßige Bluetooth-Verschlüsselung verwendet und von den Google Play-Diensten verwaltet wird.
Cloud
Wenn Bluetooth nicht verfügbar ist, werden Daten automatisch über Google Cloud weitergeleitet. 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 eine sicherere Kommunikation zwischen der auf einem Wear OS-Gerät installierten App und derselben App auf einem Mobilgerät in der Nähe zu ermöglichen:
- Der Paketname muss auf allen Geräten übereinstimmen.
- Die Signatur des Pakets muss auf allen Geräten übereinstimmen.
Andere Apps haben unabhängig vom Verbindungstyp keinen Zugriff auf die Daten.
Einrichtung
Die Wearable Data Layer API hat die folgenden Abhängigkeiten:
- Die aktuelle Version der Google Play-Dienste
- Ein Wear OS-Gerät oder Wear OS-Emulator.
Fügen Sie die folgende Abhängigkeit in die build.gradle-Datei Ihres Wear-Moduls ein:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
Erleichterung des ersten Kopplungsvorgangs
Horologist bietet mehrere Hilfsbibliotheken zusätzlich zu den Plattform-APIs. Sie enthält eine Datenebenenbibliothek, 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 Folgendes:
- Installiere 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.
- Öffne 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 findest du im DataLayer-Beispiel.
Minimalen Client verwenden
Beispielcode zum Erstellen eines Clients:
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 eines Activity verwenden, verwenden Sie die Methode getDataClient() der Klasse Wearable. Dadurch werden bestimmte Interaktionen als Dialoge 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 Sie Callbacks in einem anderen Thread ausführen möchten, verwenden Sie ein WearableOptions-Objekt, um einen benutzerdefinierten Looper anzugeben.
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, erstellen Sie sie nach Bedarf neu und verwenden Sie dabei den Stil, der zu Ihrer Anwendung passt.
Der Clientstatus, z. B. die registrierten Listener, wird von allen Clients gemeinsam genutzt und bleibt erhalten, wenn die Google Play-Dienste aktualisiert werden, während eine App ausgeführt wird.