Interfejs Wearable Data Layer API, który jest częścią Usług Google Play, zapewnia kanał komunikacji między urządzeniami do noszenia (np. inteligentnymi zegarkami) a połączonymi urządzeniami przenośnymi (zwykle smartfonami). Umożliwia synchronizowanie i przesyłanie danych między urządzeniami.
Uwaga: ten interfejs API jest dostępny tylko na zegarkach z Wear OS i sparowanych urządzeniach z Androidem. W przypadku zegarków z Wear OS sparowanych z telefonami z iOS aplikacje mogą wysyłać zapytania do innych interfejsów API opartych na chmurze, jeśli dostępne jest połączenie z internetem. Więcej informacji o tych interfejsach API znajdziesz w artykule Dostęp do sieci i synchronizacja w Wear OS.
Uwaga: interfejsy API warstwy danych są przeznaczone do komunikacji między urządzeniami przenośnymi a urządzeniami do noszenia. Są to jedyne interfejsy API, których możesz używać do konfigurowania komunikacji między tymi urządzeniami. Nie próbuj na przykład otwierać gniazd niskiego poziomu, aby utworzyć kanał komunikacji.
Typowe przypadki użycia
Używaj interfejsu Data Layer API, gdy interakcja odbywa się wyłącznie między zegarkiem a telefonem. Przykłady:
- Zdalne sterowanie: zegarek działa jako pilot do telefonu (np. steruje odtwarzaczem muzyki uruchomionym na telefonie, przesuwa slajdy prezentacji, działa jako spust migawki aparatu).
- Uruchamianie aplikacji na urządzeniu przenośnym: funkcja przycisku „Otwórz na telefonie”.
- Przekazywanie uwierzytelniania: wysyłanie tokena sesji z telefonu do zegarka podczas konfiguracji początkowej.
W wielu typowych scenariuszach należy zamiast tego używać istniejącej infrastruktury w chmurze, na przykład:
- Zapisywanie danych: treningi, notatki.
- Pobieranie treści: wczytywanie listy poprzednich treningów, pobieranie muzyki, pobieranie informacji o pogodzie.
- Synchronizowanie stanu: jeśli użytkownik zmieni zdjęcie profilowe w internecie, zegarek zaktualizuje je za pomocą chmury, a nie przez wysłanie zapytania do telefonu.
W tych scenariuszach zamiast interfejsu Data Layer API używaj własnych istniejących punktów końcowych i infrastruktury.
Opcje komunikacji
Dane są przesyłane w jeden z tych sposobów:
- Bezpośrednio, gdy między urządzeniem z Wear OS a innym urządzeniem jest ustanowione połączenie Bluetooth.
- Przez dostępną sieć, np. LTE lub Wi-Fi, przy użyciu węzła sieciowego na serwerach Google jako pośrednika.
Wszyscy klienci warstwy danych mogą wymieniać dane przez Bluetooth lub chmurę, w zależności od połączeń dostępnych na urządzeniach. Załóż, że dane przesyłane za pomocą warstwy danych mogą w pewnym momencie korzystać z serwerów należących do Google.
Bluetooth
Gdy urządzenia są połączone przez Bluetooth, warstwa danych używa tego połączenia. Między urządzeniami jest jeden zaszyfrowany kanał, który korzysta ze standardowego szyfrowania Bluetooth i jest zarządzany przez Usługi Google Play.
Chmura
Gdy Bluetooth jest niedostępny, dane są automatycznie kierowane przez Google Cloud. Wszystkie dane przesyłane przez Google Cloud są szyfrowane na całej trasie.
Bezpieczeństwo komunikacji
Usługi Google Play wymuszają te ograniczenia, aby zapewnić bezpieczniejszą komunikację między aplikacją zainstalowaną na urządzeniu z Wear OS a tą samą aplikacją zainstalowaną na pobliskim urządzeniu przenośnym:
- Nazwa pakietu musi być taka sama na wszystkich urządzeniach.
- Podpis pakietu musi być taki sam na wszystkich urządzeniach.
Żadne inne aplikacje nie mają dostępu do danych niezależnie od typu połączenia.
Konfiguracja
Interfejs Wearable Data Layer API ma te zależności:
- Najnowsza wersja Usług Google Play.
- Urządzenie z Wear OS lub emulator Wear OS.
Dodaj tę zależność do pliku build.gradle modułu Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
Ułatwianie początkowego procesu parowania
Horologist udostępnia kilka bibliotek pomocniczych opartych na interfejsach API platformy. Zawiera bibliotekę warstwy danych, która pomaga nawiązać połączenie między urządzeniem mobilnym a urządzeniem z Wear OS. Dodatkowo udostępnia wygodne interfejsy API, które umożliwiają wykonywanie tych czynności:
- Instalowanie aplikacji na innym urządzeniu.
- Uruchamianie aplikacji na innym urządzeniu.
- Uruchamianie określonej aktywności na innym urządzeniu.
- Uruchamianie aplikacji towarzyszącej.
Dostęp do warstwy danych
Aby wywołać interfejs Data Layer API, użyj klasy Wearable, aby uzyskać instancje
różnych klas klienta, takich jak DataClient i MessageClient.
Więcej informacji znajdziesz w przykładzie DataLayer.
Używanie minimalnego klienta
Aby utworzyć klienta, zapoznaj się z tym przykładowym kodem:
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 }
Kontekst może być dowolnym prawidłowym kontekstem Androida. Jeśli używasz interfejsu API w zakresie Activity, użyj metody getDataClient() klasy Wearable. Dzięki temu niektóre interakcje mogą być wyświetlane jako okna, a nie powiadomienia, np. gdy użytkownik jest proszony o zaktualizowanie wersji Usług Google Play.
Domyślnie wywołania zwrotne do detektorów są wykonywane w głównym wątku UI aplikacji. Aby wywołania zwrotne były wykonywane w innym wątku, użyj obiektu WearableOptions, aby
określić niestandardowy Looper.
Więcej informacji znajdziesz w dokumentacji WearableOptions.Builder.
W razie potrzeby ponownie twórz instancje klienta
Klienci Wearable API, tacy jak DataClient i MessageClient, są
tanie w tworzeniu. Dlatego zamiast przechowywać klientów, twórz ich ponownie w razie potrzeby, używając stylu odpowiedniego dla Twojej aplikacji.
Stan klienta, np. zestaw zarejestrowanych odbiorników, jest współdzielony przez wszystkich klientów i zachowywany, jeśli Usługi Google Play zostaną zaktualizowane podczas działania aplikacji.