Interfejs Wearable Data Layer API, który jest częścią Usług Google Play, zapewnia kanał komunikacji między urządzeniami do noszenia (takimi jak zegarki) a połączonymi urządzeniami przenośnymi (zwykle smartfonami). To sposób na 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 działających w chmurze, jeśli jest dostępne połączenie z internetem. Więcej informacji o tych interfejsach API znajdziesz w artykule Dostęp do sieci i synchronizacja na Wear OS.
Uwaga: interfejsy API warstwy danych są przeznaczone do komunikacji między urządzeniami przenośnymi i urządzeniami do noszenia, dlatego są to jedyne interfejsy API, których można używać do konfigurowania komunikacji między tymi urządzeniami. Nie próbuj na przykład otwierać gniazd niskiego poziomu, aby utworzyć kanał komunikacyjny.
Częste przypadki użycia
Używaj interfejsu Data Layer API, gdy interakcja odbywa się wyłącznie między zegarkiem a telefonem. Przykład:
- Pilot: zegarek działa jako pilot do telefonu (np. steruje odtwarzaczem muzyki na telefonie, przełącza slajdy w prezentacji, działa jako migawka aparatu).
- Uruchamianie aplikacji na urządzeniu przenośnym: funkcja przycisku „Otwórz na telefonie”.
- Mostkowanie uwierzytelniania: wysyłanie tokena sesji z telefonu do zegarka podczas konfiguracji początkowej.
W wielu typowych scenariuszach należy używać istniejącej infrastruktury w chmurze, na przykład:
- Zapisywanie danych: treningi, notatki.
- Pobieranie treści: wczytywanie listy wcześniejszych treningów, pobieranie muzyki, pobieranie informacji o pogodzie.
- Stan synchronizacji: jeśli użytkownik zmieni swoje zdjęcie profilowe w internecie, zegarek zaktualizuje je za pomocą chmury, a nie przez wysłanie zapytania do telefonu.
W takich przypadkach używaj własnych punktów końcowych i infrastruktury zamiast interfejsu API warstwy danych.
Opcje komunikacji
Dane są przesyłane na jeden z tych sposobów:
- bezpośrednio, gdy między urządzeniem z Wear OS a innym urządzeniem jest nawiązane połączenie Bluetooth;
- Przez dostępną sieć, np. LTE lub Wi-Fi, za pomocą 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 korzysta z tego połączenia. Między urządzeniami istnieje jeden zaszyfrowany kanał, który korzysta ze standardowego szyfrowania Bluetooth zarządzanego przez Usługi Google Play.
Chmura
Gdy Bluetooth jest niedostępny, dane są automatycznie przesyłane przez Google Cloud. Wszystkie dane przesyłane przez Google Cloud są w pełni szyfrowane.
Bezpieczeństwo komunikacji
Usługi Google Play stosują te ograniczenia, aby zapewnić bezpieczniejszą komunikację między aplikacją zainstalowaną na urządzeniu z Wear OS a tą samą aplikacją zainstalowaną na urządzeniu przenośnym w pobliżu:
- 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,
W pliku build.gradle modułu Wear dodaj tę zależność:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
ułatwianie procesu początkowego 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ą:
- Zainstaluj aplikację na drugim urządzeniu.
- Uruchom aplikację na drugim urządzeniu.
- uruchomić konkretną aktywność na drugim urządzeniu.
- Uruchom aplikację towarzyszącą.
Dostęp do warstwy danych
Aby wywołać interfejs API warstwy danych, 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 klienta minimalnego
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, np. prośba o zaktualizowanie Usług Google Play, będą wyświetlane jako okna, a nie powiadomienia.
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 obiekt Looper.
Więcej informacji znajdziesz w dokumentacji WearableOptions.Builder.
W razie potrzeby utwórz ponownie instancje klienta.
Klienty interfejsu Wearable API, takie jak DataClient i MessageClient, są niedrogie w tworzeniu. Zamiast przechowywać klientów, twórz ich ponownie, gdy są potrzebni, używając stylu, który pasuje do Twojej aplikacji.
Stan klienta, taki jak zestaw zarejestrowanych detektorów, jest udostępniany wszystkim klientom i zachowywany, jeśli Usługi Google Play zostaną zaktualizowane podczas działania aplikacji.