Die APIs der Wear OS-Datenebene bestehen aus mehreren verschiedenen Clienttypen, die für verschiedene Datentypen und unter verschiedenen Verbindungsbedingungen nützlich sind.
Auf dieser Seite werden die einzelnen Clienttypen vorgestellt. Außerdem enthält sie eine Tabelle, in der die Funktionen der verschiedenen Clients verglichen werden. Anhand dieser Informationen können Sie die Clienttypen auswählen, die für Ihre App am besten geeignet sind.
Datenclient
Mit einem DataClient
-Objekt können Sie Daten in eine DataItem
oder Asset
lesen oder darin schreiben:
Jede
DataItem
ist eine Informationseinheit, die auf allen Geräten in der Nähe gesendet und synchronisiert wird, die einem Nutzer gehören. EinDataItem
wird dauerhaft gespeichert und der Inhalt kann von Ihrem Gerät gelesen werden, bis das Datenelement gelöscht wird.Ein
Asset
ist für größere Datennutzlasten wie Bilder oder Mediendateien gedacht.
Nachrichtenclient
Ein MessageClient
-Objekt kann Nachrichten senden und eignet sich gut für Remote Procedure Calls (RPCs), z. B. wenn Sie mit einem Wear OS-Gerät die Version Ihrer App steuern möchten, die auf einem Mobilgerät installiert ist.
Nachrichten eignen sich hervorragend für einseitige Anfragen mit sendMessage()
oder für ein Anfrage-Antwort-Kommunikationsmodell mit sendRequest()
. Im Gegensatz zu Datenclients müssen die Knoten bei Nachrichtenclients mit dem Netzwerk verbunden sein, um Nachrichten senden zu können.
Die Methode sendMessage()
ist ein Best-Effort-Versuch, die Daten an den Remote-Knoten zu senden. Sie enthält keinen integrierten Wiederholungsmechanismus. Wenn die Verbindung zum Zielgerät vor Beginn der Netzwerkübertragung getrennt wird, gibt die Methode TARGET_NODE_NOT_CONNECTED
zurück.
Channel-Client
Ein ChannelClient
-Objekt ermöglicht die streamorientierte Kommunikation zwischen Geräten. Ein Kanal ist eine bidirektionale Kommunikationsleitung zwischen zwei Knoten. Das ist für Anwendungsfälle wie die folgenden nützlich:
- Sie können Datendateien zwischen zwei oder mehr verbundenen Geräten übertragen, wenn das Internet nicht verfügbar ist.
ChannelClient
spart gegenüberDataClient
Speicherplatz, da beiDataClient
eine Kopie der Assets auf dem lokalen Gerät erstellt wird, bevor sie mit verbundenen Geräten synchronisiert werden. - Sie können eine Datei, die zu groß für den Versand per
MessageClient
ist, zuverlässig senden. - Streaming-Daten wie Sprachdaten vom Mikrofon übertragen.
Nachdem Sie einen Kanal geöffnet haben, können Sie Daten in einem kontinuierlichen Bytestream senden und empfangen, anstatt in den diskreten DataItem
-Einheiten, die Datenclients benötigen.
Sie sind dafür verantwortlich, den Datenfluss zu verwalten und die Daten konsistent zu halten. Kanalclients bieten nicht dasselbe Maß an automatischer Datensynchronisierung wie Datenclients.
Vergleich von Kunden
In der folgenden Tabelle werden die Funktionen der verschiedenen Clients verglichen:
Clienttyp | Datenpersistenz | Unterstützt es Daten, die größer als 100 KB sind? | Zu verwendendes Netzwerk | Funktioniert offline? |
---|---|---|---|---|
Datenclient | Daten werden auf unbestimmte Zeit gespeichert | Ja (Asset -Objekte verwenden) |
Bluetooth wird bevorzugt. Daten werden in der Cloud gesichert. Wenn Bluetooth verfügbar ist, erfolgt diese Sicherung asynchron. | Ja, sowohl für Lese- als auch für Schreibvorgänge |
Nachrichtenclient | Keine Persistenz und kein Wiederholungsversuch | Nein | Bluetooth wird bevorzugt, aber WLAN kann verwendet werden, wenn es die einzige verfügbare Verbindungsart ist. | Nein |
Channel-Client | Keine Persistenz (verbindungsorientiert) | Ja | Bluetooth wird bevorzugt, aber WLAN kann verwendet werden, wenn es die einzige verfügbare Verbindungsart ist. | Nein |