Interfejsy API warstwy danych Wear OS składają się z kilku różnych typów klientów, którzy są przydatni w przypadku różnych typów danych i w różnych warunkach połączenia.
Na tej stronie znajdziesz informacje o każdym typie klienta oraz tabelę porównującą możliwości różnych klientów. Dzięki tym informacjom możesz wybrać zestaw typów klientów, który najlepiej sprawdzi się w 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 odczytywanie i zapisywanie danych w obiekcie DataItem lub
Asset:
Każdy obiekt
DataItemto jednostka informacji, która jest rozgłaszana i synchronizowana na wszystkich pobliskich urządzeniach należących do użytkownika. ObiektDataItemjest przechowywany trwale, a urządzenie może odczytywać jego zawartość, dopóki nie zostanie usunięty.Obiekt
Assetjest przeznaczony do większych ładunków danych, takich jak obrazy lub pliki multimedialne.
Klient wiadomości
Obiekt MessageClient może wysyłać wiadomości i jest przydatny 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 są przydatne w przypadku żądań jednokierunkowych za pomocą funkcji sendMessage() lub w przypadku modelu komunikacji żądanie-odpowiedź za pomocą funkcji sendRequest(). W przeciwieństwie do klientów danych, klienci wiadomości wymagają, aby węzły były połączone z siecią w celu wysyłania wiadomości.
Metoda sendMessage() to najlepsza próba dostarczenia wiadomości do węzła zdalnego i nie zawiera wbudowanego mechanizmu ponawiania. 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 umożliwia komunikację między
urządzeniami zorientowaną na strumień. Kanał to dwukierunkowy potok komunikacyjny między 2 węzłami, który jest przydatny w takich przypadkach użycia jak:
- Przesyłanie plików danych między 2 lub więcej 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. - Niezawodne wysyłanie pliku, który jest zbyt duży, aby można go było wysłać za pomocą
MessageClient. - Przesyłanie strumieniowych danych, np. danych głosowych z mikrofonu.
Po otwarciu kanału możesz wysyłać i odbierać dane w ciągłym strumieniu bajtów, a nie w dyskretnych jednostkach DataItem, których wymagają klienci danych.
Odpowiadasz za zarządzanie przepływem danych i zapewnienie ich spójności. Klienci kanałów nie oferują takiego samego poziomu automatycznej synchronizacji danych jak klienci danych.
Porównanie klientów
Tabela zawiera porównanie możliwości różnych klientów:
| Typ klienta | Trwałość danych | Obsługuje dane większe niż 100 KB? | Sieć, której chcesz użyć | Działa offline? |
|---|---|---|---|---|
| Klient danych | Dane są przechowywane bez ograniczeń czasowych | Tak (użyj
Asset
obiektów) |
Preferowany jest Bluetooth. Dane są tworzone w chmurze; jeśli Bluetooth jest dostępny, kopia zapasowa jest tworzona asynchronicznie | Tak, zarówno w przypadku odczytu, jak i zapisu |
| Klient wiadomości | Brak trwałości i brak ponawiania | Nie | Preferowany jest Bluetooth, ale jeśli jest to jedyny dostępny typ połączenia, można użyć Wi-Fi | Nie |
| Klient kanału | Brak trwałości (zorientowany na połączenie) | Tak | Preferowany jest Bluetooth, ale jeśli jest to jedyny dostępny typ połączenia, można użyć Wi-Fi | Nie |
Więcej informacji o pracy z interfejsami Data Layer API znajdziesz w przewodniku Synchronizowanie danych. Informacje o oszczędzaniu energii podczas korzystania z interfejsów Data Layer API, zobacz przewodnik Oszczędzanie energii.