Interfejsy API warstwy danych Wear OS obejmują kilka różnych typów klientów, które są przydatne w przypadku różnych typów danych i różnych warunków połączenia.
Na tej stronie przedstawiamy każdy typ klienta i zamieszczamy tabelę, w której porównujemy możliwości różnych klientów. Na podstawie tych informacji możesz wybrać zestaw typów klientów, który najlepiej sprawdzi się w przypadku Twojej aplikacji.
Kiedy używać interfejsu Data Layer API
Używaj interfejsu Data Layer API, gdy interakcja odbywa się wyłącznie między lokalnym zegarkiem a lokalnym telefonem. Szczegółowe przykłady znajdziesz w artykule Typowe przypadki użycia warstwy danych.
Klient danych
Obiekt DataClient umożliwia odczyt lub zapis w DataItem lub Asset:
Każdy
DataItemto jednostka informacji, która jest przesyłana i synchronizowana na wszystkich urządzeniach w pobliżu należących do użytkownika.DataItemjest przechowywany na stałe, a urządzenie może odczytywać jego zawartość, dopóki element danych nie zostanie usunięty.Assetjest przeznaczony do przesyłania większych ładunków danych, takich jak obrazy lub pliki multimedialne.
Klient wiadomości
Obiekt MessageClient może wysyłać wiadomości i dobrze sprawdza się w przypadku zdalnych wywołań procedur (RPC), np. gdy używasz urządzenia z Wear OS do sterowania wersją aplikacji zainstalowaną na urządzeniu przenośnym.
Wiadomości świetnie nadają się do jednokierunkowych żądań przy użyciu sendMessage() lub do modelu komunikacji żądanie-odpowiedź przy użyciu sendRequest(). W przeciwieństwie do klientów danych klienci wiadomości muszą mieć węzły połączone z siecią, aby wysyłać wiadomości.
Metoda sendMessage() stara się dostarczyć dane do węzła zdalnego i nie zawiera żadnego wbudowanego mechanizmu ponawiania prób. Jeśli urządzenie docelowe rozłączy się przed rozpoczęciem przesyłania przez sieć, metoda zwraca wartość TARGET_NODE_NOT_CONNECTED.
Klient kanału
Obiekt ChannelClient zapewnia komunikację między urządzeniami zorientowaną na strumień. Kanał to dwukierunkowy kanał komunikacyjny między 2 węzłami, który jest przydatny w takich przypadkach:
- Przesyłaj pliki danych między co najmniej 2 połączonymi urządzeniami, gdy internet jest niedostępny.
ChannelClientoszczędza miejsce na dysku w porównaniu zDataClient, który tworzy kopię zasobów na urządzeniu lokalnym przed synchronizacją z połączonymi urządzeniami. - Niezawodnie wysyłaj pliki, które są za duże, aby wysłać je za pomocą
MessageClient. - przesyłać dane strumieniowe, np. dane głosowe z mikrofonu;
Po otwarciu kanału możesz wysyłać i odbierać dane w ciągłym strumieniu bajtów, a nie w oddzielnych jednostkach DataItem, których wymagają klienci danych.
Odpowiadasz za zarządzanie przepływem danych i zapewnianie ich spójności. Klienci kanałów nie oferują takiego samego poziomu automatycznej synchronizacji danych jak klienci danych.
Porównanie klientów
W tabeli poniżej znajdziesz porównanie możliwości różnych klientów:
| Typ klienta | Trwałość danych | Czy obsługuje dane o rozmiarze większym niż 100 KB? | Sieć do użycia | Działa offline? |
|---|---|---|---|---|
| Klient danych | Dane są przechowywane bez ograniczeń czasowych. | Tak (użyj obiektów Asset) |
Preferowany jest Bluetooth. Dane są zapisywane w kopii zapasowej w chmurze. Jeśli Bluetooth jest dostępny, kopia zapasowa jest tworzona asynchronicznie. | Tak, zarówno do odczytu, jak i zapisu |
| Klient wiadomości | Brak trwałości i ponawiania prób | Nie | Preferowane jest połączenie Bluetooth, ale można używać Wi-Fi, jeśli jest to jedyny dostępny typ połączenia. | Nie |
| Klient kanału | Brak trwałości (zorientowane na połączenie) | Tak | Preferowane jest połączenie Bluetooth, ale można używać Wi-Fi, jeśli jest to jedyny dostępny typ połączenia. | Nie |
Więcej informacji o korzystaniu z interfejsów API warstwy danych znajdziesz w przewodniku Synchronizowanie danych. Informacje o zużyciu energii podczas korzystania z interfejsów API warstwy danych znajdziesz w przewodniku dotyczącym oszczędzania energii.