Omówienie interfejsu Data Layer API

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

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). Umożliwia synchronizację 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 w 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

Interfejs Data Layer API jest szczególnie przydatny w przypadku zastosowań związanych z aktywnością fizyczną i mediami.

Aplikacje fitnessowe

Wysyłanie danych o ćwiczeniach z aplikacji na Wear OS do aplikacji mobilnej Aplikacje do ćwiczeń często muszą zapisywać dane o ćwiczeniach zarejestrowane 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 wysyłać dane o ćwiczeniach z aplikacji na Wear OS do aplikacji mobilnej w celu zapisywania ich w Health Connect.

przesyłać na żywo dane na urządzenie mobilne podczas treningu w domu;

Typowy scenariusz ćwiczeń w domu to przesyłanie danych o tętnie z urządzenia z Wear OS na urządzenie mobilne i wyświetlanie użytkownikowi aktualnych informacji o tętnie na ekranie urządzenia mobilnego. Aby przesyłać te dane strumieniowo, użyj klienta kanału.

Aplikacje multimedialne

Aby sterować odtwarzaczem multimediów za pomocą działania wstrzymania/wznowienia/rozpoczęcia/zakończenia z zegarka na telefon, użyj klienta wiadomości.

Opcje komunikacji

Dane są przesyłane w jeden z tych sposobów:

  1. Bezpośrednio, gdy między urządzeniem z Wear OS a innym urządzeniem jest nawiązane połączenie Bluetooth.
  2. W dostępnej sieci, 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 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. Między urządzeniami istnieje jeden zaszyfrowany kanał, który wykorzystuje standardowe szyfrowanie 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:

Dodaj tę zależność do pliku build.gradle modułu Wear:

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. Dodatkowo udostępnia 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 DataClientMessageClient.

Więcej informacji znajdziesz w przykładzie DataLayer.

Używanie minimalnego klienta

Aby utworzyć klienta, zapoznaj się z tym przykładowym kodem:

Kotlin

val dataClient: DataClient = Wearable.getDataClient(context)

Java

DataClient dataClient = Wearable.getDataClient(context);

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, będą wyświetlane 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:

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 WearableOptions.Builder.

W razie potrzeby ponownie utwórz instancje klienta.

Klienci interfejsu API urządzeń do noszenia, np. DataClientMessageClient, 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.