Omówienie interfejsu Data Layer API

Węzeł działający w chmurze jest kontrolowany przez serwer należący do Google.
Rysunek 1. Przykład sieci węzłów z urządzeniami przenośnymi i Wear OS.

Interfejs API warstwy danych na urządzeniach noszonych, który jest częścią Usług Google Play, zapewnia kanał komunikacji między urządzeniami noszonymi (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 rejestrowane przez zegarek w aplikacji mobilnej lub w Health Connect. Jeśli do przesyłania 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 i na telefonie, użyj klienta wiadomości.

Opcje komunikacji

Dane są przenoszone w jeden z tych sposobów:

  1. Bezpośrednio, gdy istnieje połączenie Bluetooth między urządzeniem z Wear OS a innym urządzeniem.
  2. Przez dostępną sieć, taką jak LTE lub Wi-Fi, używając węzła sieci na serwerach Google jako pośrednika.

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 jakimś 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.

Skonfiguruj

Interfejs Wearable Data Layer API ma te zależności:

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 Data Layer API, użyj klasy Wearable, aby uzyskać instancje różnych klas klientów, takich jak DataClientMessageClient.

Więcej informacji znajdziesz w pliku DataLayer.txt.

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 ramach innego 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 ponownie utwórz instancje klienta.

Tworzenie klientów API na urządzenia noszone, takich jak DataClientMessageClient, 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 słuchaczy, jest udostępniany wszystkim klientom i zachowywany, jeśli usługi Google Play są aktualizowane podczas działania aplikacji.