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 łączności.
Na tej stronie znajdziesz opisy poszczególnych typów klientów oraz tabelę porównującą ich możliwości. Na podstawie tych informacji możesz wybrać zestaw typów klientów, który najlepiej sprawdzi się w przypadku Twojej aplikacji.
Dane klienta
Obiekt DataClient
umożliwia odczytywanie lub zapisywanie w obiekcie DataItem
lub Asset
:
Każdy
DataItem
to jednostka informacji, która jest przesyłana i synchronizowana na wszystkich urządzeniach użytkownika znajdujących się w pobliżu.DataItem
jest przechowywany na stałe, a urządzenie może odczytać jego zawartość do momentu usunięcia elementu danych.Asset
jest przeznaczony do przesyłania większych ilości danych, takich jak obrazy lub pliki multimedialne.
Wysyłanie wiadomości do klienta
Obiekt MessageClient
może wysyłać wiadomości i sprawdzi się w przypadku wywołań zdalnych (RPC), np. gdy używasz urządzenia z Wear OS do sterowania wersją aplikacji zainstalowaną na urządzeniu przenośnym.
Komunikaty są przydatne w przypadku żądań jednokierunkowych z użyciem sendMessage()
lub modelu komunikacji z modelem żądanie–odpowiedź z użyciem sendRequest()
. W przeciwieństwie do klientów danych klienci wiadomości muszą mieć węzły połączone z siecią, aby móc wysyłać wiadomości.
Metoda sendMessage()
stara się przekazać dane do węzła zdalnego, ale nie zawiera żadnego wbudowanego mechanizmu ponownego próby. Jeśli urządzenie docelowe rozłączy się przed rozpoczęciem przesyłania przez sieć, metoda zwróci wartość TARGET_NODE_NOT_CONNECTED
.
Klient kanału
Obiekt ChannelClient
zapewnia komunikację zorientowaną na strumienie między urządzeniami. Kanał to dwukierunkowy kanał komunikacji między dwoma węzłami, który jest przydatny w takich przypadkach jak:
- Przesyłać pliki danych między co najmniej 2 połączonymi urządzeniami, gdy internet jest niedostępny.
ChannelClient
pozwala zaoszczędzić miejsce na dysku w porównaniu z opcjąDataClient
, która tworzy kopię komponentów na urządzeniu lokalnym przed zsynchronizowaniem z połączonymi urządzeniami. - Wysyłanie pliku, który jest za duży do wysłania za pomocą
MessageClient
. - Przesyłanie danych strumieniowych, takich jak 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 osobnych jednostkach DataItem
, których wymagają klienci danych.
Ty odpowiadasz za zarządzanie przepływem danych i zachowywanie ich spójności. Klienci kanałów nie oferują takiego samego poziomu automatycznej synchronizacji danych jak klienci danych.
Porównanie klientów
Tabela poniżej zawiera porównanie możliwości różnych klientów:
Typ klienta | Trwałość danych | Czy obsługuje dane większe 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ą kopiowane do chmury; jeśli Bluetooth jest dostępny, kopia zapasowa jest tworzona asynchronicznie | Tak, zarówno odczyt, jak i zapis |
Wiadomość do klienta | Brak trwałości i ponownego próbowania | Nie | Preferowany jest Bluetooth, ale można użyć Wi-Fi, jeśli jest to jedyny dostępny typ połączenia | Nie |
Channel client | Brak trwałości (orientacja na połączenie) | Tak | Preferowany jest Bluetooth, ale można użyć Wi-Fi, jeśli jest to jedyny dostępny typ połączenia | Nie |