Tworzenie aplikacji na Wear OS dla Chin

Tworząc aplikacje na Wear OS w Chinach, musisz uwzględnić telefony bez zainstalowanych Usług Google Play. Na tej stronie znajdziesz typowe zmiany, które programiści mogą musieć wprowadzić na potrzeby rynku chińskiego.

Korzystanie z prawidłowej wersji Usług Google Play

Usługi Google Play w wersji 10.2.0 zapewniają globalną obsługę interfejsu Fused Location Provider API i Data Layer API. Jeśli korzystasz z tych interfejsów API, musisz używać tej wersji usług Google Play, aby zapewnić obsługę większej liczby urządzeń z Wear OS w Chinach. W innych przypadkach ta zależność jest opcjonalna.

Uwaga: chociaż Usługi Google Play zawierają interfejsy API dla aplikacji na Wear OS, aplikacje na Wear OS w Chinach powinny nadal korzystać z interfejsów API związanych z GoogleApiClient. Więcej informacji znajdziesz w artykule Dostęp do Wearable API.

Fused Location Provider API

Jeśli korzystasz z interfejsu API dostawcy uśrednionej lokalizacji, dodaj tę zależność do pliku build.gradle modułu Wear OS:

Dynamiczny

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-location:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-location:10.2.0")
}

Data Layer API

Jeśli Twoja aplikacja korzysta z Data Layer API, musisz dodać ten wiersz do build.gradle pliku modułu Wear OS. Ten wiersz wymaga użycia biblioteki klienta w wersji 10.2.0.

Dynamiczny

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
    ...
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
    ...
}

Dodaj ten wiersz do pliku build.gradle modułu mobilnego. Zastąp zależność od Usług Google Play odwołaniem do wersji 10.2.0.

Dynamiczny

dependencies {
    ...
    implementation 'com.google.android.gms:play-services-wearable:10.2.0'
}

Kotlin

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:10.2.0")
}

Uwierzytelnianie

Zanim zaimplementujesz uwierzytelnianie, sprawdź przypadki użycia, aby określić, czy jest ono rzeczywiście potrzebne. Na przykład w przypadku aplikacji, która wyświetla prognozę pogody, logowanie, a tym samym uwierzytelnianie, prawdopodobnie nie jest potrzebne.

Jeśli uwierzytelnianie jest wymagane, zalecamy użycie biblioteki AndroidX Oauth. Wymaga to użycia przepływu przyznawania kodu autoryzacji z PKCE. Możesz też użyć jednej z innych metod opisanych w artykule Uwierzytelnianie na urządzeniach do noszenia. Nie zalecamy używania biblioteki Wearable Support Library.

Więcej informacji znajdziesz w przykładzie Wear OS OAuth w GitHubie.

Powiadomienia przekazywane

Powiadomienia przekazywane nie są obsługiwane w Chinach. Powiadomienia z telefonu są przekazywane do Wear OS tylko wtedy, gdy urządzenie z Wear OS jest połączone z telefonem przez Bluetooth.

Zgodność lokalizacji i współrzędnych mapy

Aby wykryć lokalizację użytkownika w Chinach, użyj FusedLocationProvider (FLP), tak jak w przypadku innych krajów. Dzięki temu Twoja aplikacja będzie uwzględniać najlepsze informacje niezależnie od sprzętu zegarka i platformy telefonu, z którym jest sparowany. Użycie FLP zapewnia też optymalizację baterii wbudowaną w platformę Wear OS.

Integrując FusedLocationProvider z pakietami SDK map innych firm, weź pod uwagę zgodność współrzędnych między dostawcami. FusedLocationProvider podaje lokalizację zgodnie ze standardem WGS84. W razie potrzeby przekonwertuj systemy współrzędnych.

Obsługa Google Fit

W Chinach obsługiwane są liczniki kroków, minuty aktywności i punkty kardio w Google Fit, z historią do 7 dni. Możesz uzyskać do nich dostęp bez podawania danych logowania użytkownika.

Obsługa komend głosowych

Platforma Wear OS udostępnia kilka intencji głosowych opartych na działaniach użytkownika, takich jak _„Pokaż tętno”_ czy _„Ustaw alarm”_. Dzięki temu użytkownicy mogą powiedzieć, co chcą zrobić, a system określi najlepszą aktywność do rozpoczęcia.

Gdy użytkownicy wypowiadają komendę głosową, Twoja aplikacja może filtrować intencję, która jest wywoływana, aby rozpocząć aktywność. Aby uruchomić usługę w tle, wyświetl aktywność jako wskazówkę wizualną i uruchom usługę w aktywności. Aby pozbyć się wskazówki wizualnej, wywołaj finish().

Oto lista intencji głosowych obsługiwanych przez platformę Wear OS:

Kategoria Przykład Specyfikacja intencji
Zamawianie taksówki 打车去三里屯 Działanie

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Dodatkowe informacje

to: rozpoznane miejsce docelowe

Dodatkowe informacje są opcjonalne.

Ustaw alarm 设置一个明早七点的闹钟 Działanie

android.intent.action.SET_ALARM

Dodatkowe informacje

android.provider.AlarmClock.EXTRA_HOUR: liczba całkowita z godziną alarmu

android.provider.AlarmClock.EXTRA_MINUTES: liczba całkowita z minutą alarmu

Te dodatkowe informacje są opcjonalne. Podaj jedną z tych informacji, obie lub żadną.

Ustaw licznik 设置一个三分钟的倒计时 Działanie

android.intent.action.SET_TIMER

Dodatkowe informacje

android.provider.AlarmClock.EXTRA_LENGTH: liczba całkowita z zakresu od 1 do 86400 (liczba sekund w 24 godzinach), która reprezentuje długość licznika

Uruchom stoper 开始计时 Działanie

com.google.android.wearable.action.STOPWATCH

Rozpoczęcie lub zatrzymanie jazdy rowerem 开始骑车 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/biking

Dodatkowe informacje

actionStatus: ciąg znaków z wartością ActiveActionStatus podczas rozpoczynania i CompletedActionStatus podczas zatrzymywania

Rozpoczęcie lub zatrzymanie biegu 开始跑步 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/running

Dodatkowe informacje

actionStatus: ciąg znaków z wartością ActiveActionStatus podczas rozpoczynania i CompletedActionStatus podczas zatrzymywania

Rozpoczęcie lub zatrzymanie treningu 开始锻炼 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/other

Dodatkowe informacje

actionStatus: ciąg znaków z wartością ActiveActionStatus podczas rozpoczynania i CompletedActionStatus podczas zatrzymywania

Pokaż tętno 查看心率 Działanie

vnd.google.fitness.VIEW

Typ MIME

vnd.google.fitness.data_type/com.google.heart_rate.bpm

Pokaż liczbę kroków 查看步数 Działanie

vnd.google.fitness.VIEW

Typ MIME

vnd.google.fitness.data_type/com.google.step_count.cumulative

Nawigacja 导航去三里屯 Działanie

android.intent.action.VIEW

Dane

geo:latitude,longitude?q=融科资讯中心

Asystent głosowy może też używać dotychczasowych typowych intencji Androida , aby wywoływać określone zachowania, jeśli jest to możliwe.

Obsługa emulatora

Do testowania aplikacji możesz użyć chińskiej wersji obrazu emulatora Wear OS. Jest ona obsługiwana przez Androida Studio w wersji 3.0 i nowszej.

Aby przetestować aplikacje w chińskiej wersji emulatora:

  1. Zainstaluj Android Emulator.
  2. Pobierz obrazy Wear OS dla Chin z menedżera SDK. Użyj wersji dla Wear OS 3.5 (poziom API 30).
  3. Podczas tworzenia profilu AVD wybierz obraz Wear OS dla Chin.
  4. Uruchom emulator Wear OS dla Chin na potrzeby programowania.
  5. Rysunek 1. Przykłady chińskiej wersji emulatora Wear OS.

Ta wersja emulatora Wear OS zawiera kilka preinstalowanych aplikacji:

  • Dźwięki otoczenia
  • Kontakty
  • Pismo odręczne Google
  • Usługi Google Play
  • Funkcje dotyczące zdrowia na Wear OS
  • Rozpoznawanie słów kluczowych na urządzeniach LE
  • Pinyin
  • Sklep Play (dostosowany do urządzeń w Chinach)
  • Pocketwatch
  • TalkBack
  • Tarcze zegarków (wersje analogowe i cyfrowe)
  • Usługi podstawowe Wear

Inicjowanie kanału Bluetooth i Wi-Fi specyficznego dla aplikacji

Wear OS automatycznie kieruje żądania sieciowe. W większości przypadków aplikacja nie musi otwierać kanału Bluetooth i Wi-Fi specyficznego dla aplikacji.

Jeśli aplikacja zażąda w Chinach kanału Bluetooth i Wi-Fi specyficznego dla aplikacji, żądanie zakończy się niepowodzeniem. Zamiast tego wyświetli się okno z prośbą o potwierdzenie. Jeśli użytkownik potwierdzi, kanał zostanie otwarty. Dzieje się tak za każdym razem, a nie tylko przy pierwszym użyciu. BluetoothAdapter.enable() lub WifiManager.setEnabled(true) jest wywoływana.

Uwaga: aby aplikacja kierowana na Androida 10 (poziom API 29) lub nowszego mogła wywołać WifiManager.setEnabled(), musi być aplikacją systemową lub kontrolerem zasad dotyczących urządzeń (DPC).

Tryb sprawdzania uprawnień

W Chinach urządzenia z Wear OS dla Chin działają w trybie sprawdzania uprawnień, który nakłada pewne ograniczenia na sposób korzystania z aplikacji z targetApiLevel niższym niż 23. Zapoznaj się z tymi ograniczeniami:

  • Chociaż uprawnienia są przyznawane podczas instalacji, gdy aplikacja z targetApiLevel niższym niż 23 zostanie uruchomiona po raz pierwszy, pojawi się okno z prośbą o potwierdzenie uprawnień dla tej aplikacji.
  • Komponenty aplikacji, takie jak odbiorniki transmisji, usługi i aktywności nie reagują na odpowiednie zdarzenia, dopóki aplikacja nie zostanie użyta po raz pierwszy.

Dlatego zalecamy używanie targetApiLevel 23 lub nowszego oraz stosowanie sprawdzonych metod dotyczących uprawnień aplikacji.

Korzystanie z innych interfejsów API Usług Google Play

Jeśli Twoja aplikacja korzysta z interfejsów API Usług Google Play innych niż Wearable API, musi sprawdzać, czy te interfejsy API są dostępne podczas działania, i odpowiednio reagować. Istnieją 2 sposoby sprawdzenia dostępności interfejsów API Usług Google Play:

  1. Użyj osobnej instancji GoogleApiClient do łączenia się z innymi interfejsami API. Ten interfejs zawiera wywołania zwrotne, które informują aplikację o powodzeniu lub niepowodzeniu połączenia. W przypadku nieudanego połączenia ConnectionResult pokazuje API_UNAVAILABLE. Aby dowiedzieć się, jak radzić sobie z nieudanymi połączeniami, przeczytaj artykuł Dostęp do interfejsów API Google.
  2. Aby połączyć się z wymaganymi interfejsami API, użyj metody addApiIfAvailable() klasy GoogleApiClient.Builder. Po wywołaniu zwrotnym onConnected() użyj metody hasConnectedApi(), aby upewnić się, że każdy z żądanych interfejsów API jest prawidłowo połączony.

Rozpowszechnianie aplikacji w Chinach

Aby skutecznie docierać do użytkowników Wear OS dla Chin, możesz rozpowszechniać aplikacje za pomocą sklepów z aplikacjami na Wear OS innych firm, takich jak: