Interfejs Wearable Data Layer API, który jest częścią usług Google Play, zapewnia kanał komunikacji między urządzeniami do noszenia (np. zegarkami) a połączonymi urządzeniami przenośnymi (zwykle smartfonami). Jest to sposób synchronizowania i przesyłania 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 na Wear OS.
Ostrzeżenie: interfejsy API warstwy danych są przeznaczone do komunikacji między urządzeniami przenośnymi a urządzeniami do noszenia, dlatego 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.
Częste przypadki użycia
Używaj interfejsu Data Layer API, gdy interakcja odbywa się wyłącznie między zegarkiem a telefonem. Na przykład:
- Pilot: zegarek działa jak pilot do telefonu (np. steruje odtwarzaczem muzyki uruchomionym na telefonie, przesuwa slajdy prezentacji lub działa jako migawka aparatu).
- Uruchamianie aplikacji na urządzeniu przenośnym: funkcja przycisku „Otwórz na telefonie”.
- Authentication Bridging: wysyłanie tokena sesji z telefonu na zegarek podczas konfiguracji początkowej.
W wielu typowych scenariuszach należy zamiast tego używać istniejącej infrastruktury w chmurze, np.:
- Zapisywanie danych: treningi, notatki.
- Pobieranie treści: wczytywanie listy poprzednich treningów, pobieranie muzyki, sprawdzanie pogody.
- Stan synchronizacji: jeśli użytkownik zmieni zdjęcie profilowe w internecie, zegarek zaktualizuje je za pomocą chmury, a nie przez wysyłanie zapytań do telefonu.
W takich przypadkach używaj własnych punktów końcowych i infrastruktury zamiast interfejsu Data Layer API.
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 nawiązane połączenie Bluetooth.
- W dostępnej sieci, 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 w chmurze, 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. Pomiędzy urządzeniami istnieje jeden zaszyfrowany kanał, który korzysta ze standardowego szyfrowania Bluetootha 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
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, usługi Google Play wymuszają stosowanie tych ograniczeń:
- 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 tych 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 uwzględnij tę zależność:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
ułatwiać początkowy proces 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. Udostępnia też wygodne interfejsy API, które umożliwiają:
- Zainstaluj aplikację na innym urządzeniu.
- Uruchom aplikację na drugim urządzeniu.
- Uruchomienie konkretnej aktywności na innym urządzeniu.
- Uruchom aplikację towarzyszącą.
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 ramach Activity, użyj metody getDataClient() klasy Wearable. Dzięki temu niektóre interakcje, np. prośba o zaktualizowanie wersji usług Google Play, mogą wyświetlać się jako okna dialogowe, a nie powiadomienia.
Domyślnie wywołania zwrotne do odbiorców są wykonywane w głównym wątku interfejsu 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 WearableOptions.Builder.
W razie potrzeby ponownie utwórz instancje klienta.
Klienci interfejsu API urządzeń do noszenia, np. DataClient i MessageClient, są niedrogie w tworzeniu. Zamiast przechowywać klientów, odtwarzaj ich w razie potrzeby, używając stylu odpowiedniego dla Twojej aplikacji.
Stan klienta, np. zestaw zarejestrowanych odbiorców, jest współdzielony przez wszystkich klientów i zachowywany, jeśli Usługi Google Play zostaną zaktualizowane podczas działania aplikacji.