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 podłączonymi urządzeniami przenośnymi (zwykle smartfonami). To sposób na synchronizację i przenoszenie 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 jest dostępna łączność 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 noszonymi, dlatego tylko ich 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 zastosowania
Interfejs Data Layer API jest szczególnie przydatny w przypadku aplikacji fitnessowych i multimedialnych.
Aplikacje fitnessowe
Wysyłanie danych o ćwiczeniach z aplikacji na Wear OS do aplikacji mobilnej Aplikacje fitness często muszą zapisywać dane o ćwiczeniach zarejestrowane przez zegarek w aplikacji mobilnej lub w Health Connect. Jeśli do przenoszenia danych używasz interfejsu Data Layer API, użyj klienta wiadomości, aby wysłać dane dotyczące ćwiczeń z aplikacji Wear OS do aplikacji mobilnej, a następnie zapisać je w Health Connect.
Przesyłanie danych na żywo na urządzenie mobilne podczas treningu domowego
Typowy scenariusz treningu w domu to przesyłanie danych o tętnu z urządzenia z Wear OS na urządzenie mobilne i wyświetlanie użytkownikowi aktualnych informacji o tętnu na ekranie tego urządzenia. Aby przesyłać te dane strumieniowo, użyj klienta kanału.
Aplikacje multimedialne
Aby sterować odtwarzaczem multimediów za pomocą funkcji wstrzymywania/wznawiania/rozpoczynania/zatrzymywania na zegarku, użyj klienta wiadomości.
Opcje komunikacji
Dane są przenoszone w jeden z tych sposobów:
- Bezpośrednio, gdy istnieje połączenie Bluetooth między urządzeniem z Wear OS a innym urządzeniem.
- Przez dostępną sieć, taką jak LTE lub Wi-Fi, używając węzła sieci na serwerach Google jako pośrednika.
Wszystkie klienci warstwy danych mogą wymieniać dane za pomocą Bluetooth lub chmury, w zależności od połączeń dostępnych na urządzeniach. Załóżmy, ż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, Data Layer korzysta z tego połączenia. Pomiędzy urządzeniami jest 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 kierowane przez Google Cloud. Wszystkie dane przesyłane przez Google Cloud są szyfrowane od końca do końca.
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 znajdującym się w pobliżu:
- Nazwa pakietu musi być taka sama na wszystkich urządzeniach.
- Podpis pakietu musi być taki sam na wszystkich urządzeniach.
Żadna inna aplikacja nie ma dostępu do tych danych niezależnie od typu połączenia.
Konfiguracja
Interfejs API warstwy danych na urządzeniu do noszenia 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 na Wear dodaj tę zależność:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Ułatwienie początkowego procesu parowania
Horologist udostępnia kilka bibliotek pomocniczych 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 innym urządzeniu.
- Uruchom aplikację na drugim urządzeniu.
- uruchomić konkretną aktywność na innym 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 klientów, takich jak DataClient
i MessageClient
.
Więcej informacji znajdziesz w pliku DataLayer.php.
Używanie minimalnego klienta
Aby utworzyć klienta, zobacz ten przykładowy kod:
Kotlin
val dataClient: DataClient = Wearable.getDataClient(context)
Java
DataClient dataClient = Wearable.getDataClient(context);
Kontekstem może być dowolny prawidłowy kontekst Androida. Jeśli korzystasz z interfejsu API w ramach Activity
, użyj metody getDataClient()
klasy Wearable
. Dzięki temu niektóre interakcje będą wyświetlane jako dialogi, a nie powiadomienia, np. gdy użytkownik zostanie poproszony o zaktualizowanie wersji usług Google Play.
Domyślnie wywołania zwrotne do odbiorców są wykonywane w głównym wątku interfejsu aplikacji. Aby wywołania były wykonywane w innym wątku, użyj obiektu WearableOptions
, aby określić niestandardowy obiekt Looper
:
Kotlin
runBlocking { Wearable.getDataClient(context, options) }
Java
WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build(); DataClient dataClient = Wearable.getDataClient(context, options);
Więcej informacji znajdziesz w dokumentacji WearableOptions.Builder
.
W razie potrzeby utwórz ponownie instancje klienta.
Tworzenie klientów API na urządzenia noszone, takich jak DataClient
i MessageClient
, jest tanie. Zamiast przechowywać klientów, twórz ich ponownie w miarę potrzeby, używając stylu odpowiedniego dla Twojej aplikacji.
Stan klienta, np. zestaw zarejestrowanych odbiorców, jest udostępniany wszystkim klientom i zachowywany, jeśli usługi Google Play zostaną zaktualizowane podczas działania aplikacji.