Tworzenie aplikacji na Wear OS dla Chin

Tworząc aplikacje na Wear OS przeznaczone do Chin, musisz uwzględnić telefony bez Google Play fabrycznie zainstalowanych usług. Na tej stronie znajdziesz informacje o najczęstszych zmianach, które deweloperzy mogą wprowadzić na potrzeby rynku chińskiego.

Używaj prawidłowej wersji Usług Google Play

Usługi Google Play w wersji 10.2.0 obsługują na całym świecie interfejsy Fused Location Provider API Data Layer API. Jeśli używasz tych interfejsów API, aby zapewnić obsługę większej liczby urządzeń z Wear OS w Chinach, musisz używać tej wersji Usług Google Play. W innych przypadkach zależność ta jest opcjonalnie.

Uwaga: chociaż usługi Google Play zawierają interfejsy API dla aplikacji na Wear OS, aplikacje na Wear OS w Chinach powinny nadal używać interfejsów API związanych z GoogleApiClient. Zapoznaj się z artykułem Uzyskiwanie dostępu do interfejsu Wearable API.

Fused Location Provider API

Jeśli używasz interfejsu Fused Location Provider API, dodaj tę zależność w pliku build.gradle w module Wear OS:

Groovy

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")
}

Interfejs API warstwy danych

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

Odlotowe

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 do modułu mobilnego. Zastąp zależność Usług Google Play odwołaniem do elementu wersji 10.2.0.

Odlotowe

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

Przed wdrożeniem uwierzytelniania przejrzyj przypadki użycia i sprawdź, czy uwierzytelnianie niezbędną. Na przykład w przypadku aplikacji wyświetlającej prognozę pogody nie jest wymagane logowanie, a tym samym uwierzytelnianie.

Jeśli wymagasz uwierzytelniania, zalecamy użycie biblioteki AndroidX Oauth. Wymaga to korzystania z Proces przyznania 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 obsługi urządzeń noszonych.

Więcej informacji znajdziesz na GitHubie w pliku przykładowego kodu OAuth na Wear OS.

Powiadomienia z innych aplikacji

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

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

Użyj FusedLocationProvider (FLP), aby wykryć lokalizację użytkownika w Chinach, tak jak w pozostałych częściach świata. Dzięki temu aplikacja bierze pod uwagę najlepsze informacje niezależnie od modelu zegarka i platformy telefonu, z którą jest sparowany. Korzystanie z FLP powoduje też włączenie optymalizacji baterii wbudowanej w platformę Wear OS.

Podczas integracji FusedLocationProvider z pakietami SDK map innych firm uwzględnia zgodność współrzędnych między dostawcami. FusedLocationProvider zgłasza lokalizację na podstawie Standard WGS84. Pamiętaj, by odpowiednio przekonwertować układy współrzędnych.

Pomoc Google Fit

Google Fit licznik kroków, minuty ruchu i punkty kardio są obsługiwane w Chinach. Limit wynosi 7 dni historii. Możesz uzyskać do niego 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, np. _"Pokaż tętno"_ lub _"Ustaw alarm"_. Dzięki temu użytkownicy mogą powiedzieć, co chcą zrobić, a system określić najlepszą aktywność na początek.

Gdy użytkownik wypowiada komendę głosową, aplikacja może odfiltrować wywołaną intencję, aby uruchomić działania. Aby uruchomić usługę w tle, wyświetl aktywność jako sygnał wizualny i uruchom polecenie w ramach aktywności. Aby pozbyć się wizualnego sygnału, zadzwoń pod numer finish().

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

Kategoria Przykład Specyfikacja intencji
Zamawianie przejazdu 打车去型里屯 Działanie

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Dodatkowe

to: rozpoznane miejsce docelowe.

Dodatkowe informacje są opcjonalne.

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

android.intent.action.SET_ALARM

Dodatki

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

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

Te dodatki są opcjonalne. Podaj wszystkie, niektóre lub żadne z tych dodatków.

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

android.intent.action.SET_TIMER

Dodatki

android.provider.AlarmClock.EXTRA_LENGTH: liczba całkowita z zakresu od 1 do 86 400. (liczba sekund z 24 godzin), która odpowiada długości stopera

Uruchom stoper 开始计时 Działanie

com.google.android.wearable.action.STOPWATCH

Rozpocznij lub zatrzymaj jazdę rowerem 开始骑车 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/biking

Dodatki

actionStatus: ciąg znaków z wartością ActiveActionStatus na początku i CompletedActionStatus przy zatrzymaniu

Rozpoczynanie i kończenie biegu 开始跑步 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/running

Dodatki

actionStatus: ciąg znaków o wartości ActiveActionStatus na początku i CompletedActionStatus na końcu.

Rozpoczynanie lub zatrzymywanie treningu 开始锻炼 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/other

Dodatki

actionStatus: ciąg znaków z wartością ActiveActionStatus na początku oraz CompletedActionStatus przy zatrzymaniu

Wyświetlanie tętna 查看心率 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ć istniejących intencji wspólnych Androida, aby wywoływać określone zachowania w odpowiednich sytuacjach.

Wsparcie dotyczące emulatora

Do testowania aplikacji możesz użyć chińskiej wersji obrazu emulatora Wear OS. Ta funkcja jest obsługiwana w Android Studio 3.0 lub nowszej wersji.

Aby przetestować aplikacje emulatora w chińskiej wersji, wykonaj te czynności:

  1. Zainstaluj emulator Androida.
  2. Pobierz obrazy Wear OS dla Chin z Menedżera pakietu SDK. Używaj wersji Wear OS 3.5 (poziom API 30).
  3. Podczas tworzenia profilu AVD wybierz obraz Wear OS na rynek chiński.
  4. Na potrzeby programowania możesz uruchomić emulator Wear OS dla Chin.
  5. Rysunek 1. Przykłady chińskiej wersji emulatora Wear OS

Ta wersja emulatora Wear OS zawiera kilka wstępnie zainstalowanych aplikacji:

  • Dźwięki otoczenia
  • kontakty,
  • Pismo odręczne Google
  • Usługi Google Play
  • Usługi zdrowotne na Wear OS
  • Wykrywanie słów-kluczy na urządzeniach LE
  • Pinyin
  • Sklep Play (dostosowane do urządzeń w Chinach)
  • Zegarek kieszonkowy
  • TalkBack
  • tarcze zegarka (zarówno analogowe, jak i cyfrowe);
  • Usługi podstawowe Wear

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

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

Jeśli aplikacja poprosi o specyficzny dla niej kanał Bluetooth lub Wi-Fi w Chinach, żądanie zakończy się niepowodzeniem. Zamiast tego pojawi się okno proszą użytkownika o potwierdzenie. Jeśli użytkownik potwierdzi, kanał zostanie otwarty. Dzieje się tak za każdym razem, a nie tylko przy pierwszym użyciu. Wywołana jest funkcja BluetoothAdapter.enable() lub WifiManager.setEnabled(true).

Uwaga: w przypadku kierowania na aplikację Android 10 (poziom interfejsu API 29) lub nowszy WifiManager.setEnabled(), musi to być aplikacja systemowa lub kontroler zasad dotyczących urządzeń (DPC).

Tryb sprawdzania uprawnień

W Chinach Wear OS dla urządzeń z Chin działa w trybie sprawdzania uprawnień, nakłada pewne ograniczenia na sposób korzystania z aplikacji z targetApiLevel poniżej 23. Zapoznaj się z tymi limitami:

  • Mimo że uprawnienia są przyznawane w momencie instalacji, gdy aplikacja z tagiem Po raz pierwszy zostanie uruchomiona wartość targetApiLevel mniejsza niż 23. Pojawi się okno z pytaniem użytkownik powinien potwierdzić uprawnienia dla tej aplikacji.
  • Składniki w aplikacji, takie jak odbiorniki transmisji, usługi i czynności, nie reagują na odpowiednie zdarzenia, dopóki aplikacja nie zostanie użyta po raz pierwszy.

Dlatego zalecamy używanie Androida targetApiLevel w wersji 23 lub nowszej oraz stosowanie sprawdzonych metod dotyczących uprawnień aplikacji.

Używanie innych interfejsów API Usług Google Play

Jeśli aplikacja korzysta z interfejsów API Usług Google Play innych niż Wearable API, musi sprawdzić, czy te interfejsy API są dostępne do użycia w czasie działania, i odpowiednio na nie zareagować. Dostępność interfejsów API usługi Google Play możesz sprawdzić na 2 sposoby:

  1. Do łączenia się z innymi interfejsami API użyj osobnej instancji GoogleApiClient. Ten interfejs zawiera wywołania zwrotne, które powiadamią aplikację o  powodzeniu lub niepowodzeniu połączenia. W przypadku nieudanego połączenia ConnectionResult pokazuje API_UNAVAILABLE. Aby dowiedzieć się, jak postępować w przypadku błędów połączenia, zapoznaj się z sekcją Dostęp do interfejsów API Google
  2. Aby połączyć się z wymaganymi interfejsami API, użyj metody addApiIfAvailable() GoogleApiClient.Builder. Po wywołaniu funkcji zwrotnej onConnected() użyj metody hasConnectedApi(), aby upewnić się, że każdy z wymaganych interfejsów API jest prawidłowo połączony.

Dystrybucja aplikacji w Chinach

Aby skutecznie docierać do użytkowników Wear OS w Chinach, możesz rozpowszechniać aplikacje w sklepach zewnętrznych na Wear OS, takich jak: