Tworzenie aplikacji na Wear OS dla Chin

Podczas tworzenia aplikacji na Wear OS na rynek chiński musisz uwzględnić telefony bez wstępnie zainstalowanych usług Google Play. Na tej stronie znajdziesz informacje o najczęstszych zmianach, które deweloperzy mogą wprowadzić w przypadku 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 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 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 korzysta z interfejsu Data Layer API, musisz dodać ten wiersz do pliku build.gradle w module na Wear OS. Ten wiersz wymaga użycia biblioteki klienta w wersji 10.2.0.

Groovy

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 w module mobilnym. Zastąp zależność od Usług Google Play odwołaniem do wersji 10.2.0.

Groovy

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 wdrożysz uwierzytelnianie, sprawdź, czy jest ono rzeczywiście potrzebne. Na przykład w przypadku aplikacji przedstawiającej prognozę pogody nie jest wymagane logowanie, a tym samym uwierzytelnianie.

Jeśli wymagasz uwierzytelniania, zalecamy użycie biblioteki AndroidX Oauth. Wymaga to użycia przepływu Przyznawanie kodu autoryzacji z PKCE. Możesz też użyć jednej z innych metod opisanych w artykule Uwierzytelnianie na urządzeniach do noszenia. Korzystanie z biblioteki obsługującej urządzenia do noszenia nie jest zalecane.

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

Powiadomienia z połączonych aplikacji

Powiadomienia z mostem nie są obsługiwane w Chinach. Powiadomienia z telefonu są przesyłane do 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 będzie uwzględniać najlepsze informacje niezależnie od sprzętu zegarka i platformy telefonu, z którą jest sparowany. Korzystanie z FLP powoduje też wbudowanie optymalizacji baterii w systemie Wear OS.

Podczas integrowania FusedLocationProvider z zewnętrzymi pakietami SDK map należy wziąć pod uwagę zgodność współrzędnych między dostawcami. FusedLocationProvider raportuje lokalizację zgodnie ze standardem WGS84. Pamiętaj, aby odpowiednio przekształcić układy współrzędnych.

Zespół pomocy Google Fit

W Chinach dostępne są licznik kroków, minuty ruchu i punkty kardio z Google Fit, z historią do 7 dni. 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, takich jak _„Pokaż tętno”_ czy _„Ustaw alarm”_. Dzięki temu użytkownicy mogą określić, co chcą zrobić, a system może wybrać najlepszą aktywność do rozpoczęcia.

Gdy użytkownicy wypowiadają polecenie głosowe, aplikacja może odfiltrować intencję, która uruchamia działanie. Aby uruchomić usługę w tle, wyświetl aktywność jako wizualny sygnał i uruchom usługę w ramach tej 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 zamiaru
Zamawianie przejazdu 打车去三里屯 Czynność

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Dodatkowe

to: rozpoznane miejsce docelowe

Dodatkowe informacje są opcjonalne.

Ustaw alarm 设置一个明早七点的闹钟 Czynność

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 设置一个三分钟的倒计时 Czynność

android.intent.action.SET_TIMER

Dodatki

android.provider.AlarmClock.EXTRA_LENGTH: liczba całkowita z zakresu 1–86 400 (liczba sekund w 24 godzinach) wskazująca długość działania minutnika.

Uruchom stoper 开始计时 Czynność

com.google.android.wearable.action.STOPWATCH

Rozpoczynanie i zatrzymywanie jazdy rowerem 开始骑车 Czynność

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/biking

Dodatki

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

Rozpocznij lub zatrzymaj bieg 开始跑步 Czynność

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.

Rozpocznij lub zatrzymaj trening 开始锻炼 Czynność

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/other

Dodatki

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

Wyświetlanie tętna 查看心率 Czynność

vnd.google.fitness.VIEW

Typ MIME

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

Pokaż liczbę kroków 查看步数 Czynność

vnd.google.fitness.VIEW

Typ MIME

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

Nawigacja 导航去三里屯 Czynność

android.intent.action.VIEW

Dane

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

Asystent głosowy może też używać istniejących intencji wspólnych Androida do wywoływania określonych zachowań w odpowiednich przypadkach.

Wsparcie dotyczące emulatora

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

Aby przetestować aplikacje w wersji emulatora przeznaczonej na rynek chiński:

  1. Zainstaluj emulator Androida.
  2. Pobierz obrazy Wear OS dla Chin z Menedżera pakietu SDK. Użyj wersji na Wear OS 3.5 (poziom interfejsu API 30).
  3. Podczas tworzenia profilu AVD wybierz obraz Wear OS na rynek chiński.
  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 wstępnie zainstalowanych aplikacji:

  • Dźwięki otoczenia
  • kontakty,
  • Metoda wprowadzania tekstu odręcznego Google
  • Usługi Google Play
  • Usługi dotyczące zdrowia na Wear OS
  • Wykrywanie słów-kluczy na urządzeniach LE
  • Pinyin
  • Sklep Play (dostosowany do urządzeń w Chinach)
  • Zegarek
  • 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 konkretnej aplikacji.

Jeśli aplikacja poprosi o specyficzny dla niej kanał Bluetooth lub Wi-Fi w Chinach, żądanie zakończy się niepowodzeniem. Zamiast tego wyświetla 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. Wywołana jest funkcja BluetoothAdapter.enable() lub WifiManager.setEnabled(true).

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

Tryb sprawdzania uprawnień

W Chinach urządzenia z Wear OS działają w trybie sprawdzania uprawnień, który narzuca pewne ograniczenia dotyczące korzystania z aplikacji z targetApiLevel niższym niż 23. Zapoznaj się z tymi limitami:

  • Mimo że uprawnienia są przyznawane w momencie instalacji, gdy aplikacja z targetApiLevel niższym niż 23 po raz pierwszy się uruchamia, pojawia się okno z prośbą o potwierdzenie uprawnień 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.

Korzystanie z 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ć. Istnieją 2 sposoby sprawdzania dostępności interfejsów API usług Google Play:

  1. Do łączenia się z innymi interfejsami API użyj osobnej instancji GoogleApiClient. Ten interfejs zawiera wywołania zwrotne, które informują aplikację o  powodzeniu lub niepowodzeniu połączenia. W przypadku niepowodzenia połączenia ConnectionResult wyświetla API_UNAVAILABLE. Aby dowiedzieć się, jak radzić sobie z błędami połączenia, przeczytaj artykuł Dostęp do interfejsów Google API.
  2. Użyj metody addApiIfAvailable() interfejsu GoogleApiClient.Builder, aby połączyć się z wymaganymi interfejsami API. Po wywołaniu onConnected() metody wywołania zwrotnego 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: