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ć na potrzeby rynku chińskiego.

Używanie 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, musisz używać tej wersji Usług Google Play, aby zapewnić obsługę szerszej gamy 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 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 modułu Wear OS:

Odlotowe

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ć poniższy wiersz do pliku build.gradle w module 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

Przed wdrożeniem uwierzytelniania sprawdź, czy uwierzytelnianie jest faktycznie potrzebne. Na przykład w przypadku aplikacji wyświetlającej prognozę pogody nie jest wymagane logowanie, a tym samym uwierzytelnianie.

Jeśli wymagasz uwierzytelniania, zalecamy korzystanie z biblioteki OAuth na AndroidaX. Wymaga to użycia procesu 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 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ą 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ż włączenie optymalizacji baterii wbudowanej w platformę 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.

Pomoc 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 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, np. _„Pokaż tętno”_ lub _„Ustaw alarm”_. Dzięki temu użytkownicy mogą powiedzieć, co chcą zrobić, a system na początek wybierze najlepszą aktywność.

Gdy użytkownicy wypowiadają polecenie głosowe, aplikacja może odfiltrować intencję, która uruchamia daną aktywność. 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 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 1–86 400 (liczba sekund w 24 godzinach) wskazująca długość działania minutnika.

Uruchom stoper 开始计时 Działanie

com.google.android.wearable.action.STOPWATCH

Rozpoczynanie i zatrzymywanie jazdy rowerem 开始骑车 Działanie

vnd.google.fitness.TRACK

Typ MIME

vnd.google.fitness.activity/biking

Dodatki

actionStatus: ciąg znaków z wartością ActiveActionStatus w przypadku rozpoczęcia i zatrzymywania CompletedActionStatus

Rozpocznij lub zatrzymaj bieg 开始跑步 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.

Rozpocznij lub zatrzymaj trening 开始锻炼 Działanie

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 查看型率 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ć obrazu obrazu  Wear OS dla Chin. Ta funkcja jest obsługiwana w Android Studio 3.0 lub nowszej wersji.

Aby przetestować aplikacje na chińskiej wersji emulatora:

  1. Zainstaluj emulator Androida.
  2. Pobierz obrazy z Wear OS (Chiny) z menedżera pakietów 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. 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 ma kilka wstępnie zainstalowanych aplikacji:

  • Dźwięki otoczenia
  • kontakty,
  • Pismo odręczne Google
  • Usługi Google Play
  • Usługi dotyczące zdrowia na Wear OS
  • Rozpoznawanie 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 kanał Bluetooth i Wi-Fi związany z konkretną aplikacją w Chinach, żądanie nie powiedzie się. Zamiast tego pojawi 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ływać 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 nakłada pewne ograniczenia na korzystanie 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 poziomem po raz pierwszy się uruchamia, pojawia się okno z prośbą o potwierdzenie uprawnień dla tej aplikacji.
  • Komponenty aplikacji, takie jak odbiorniki, usługi i działania, nie reagują na odpowiednie zdarzenia przed pierwszym użyciem aplikacji.

Dlatego zalecamy korzystanie z targetApiLevel w wersji 23 lub nowszej i przestrzeganie 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ć. Dostępność interfejsów API usług Google Play można 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 wyświetla API_UNAVAILABLE. Aby dowiedzieć się, jak postępować w przypadku błędów połączeń, przeczytaj artykuł o uzyskiwaniu dostępu do interfejsów API Google.
  2. Użyj metody addApiIfAvailable() interfejsu GoogleApiClient.Builder, aby połączyć się z wymaganymi interfejsami API. Po uruchomieniu wywołania zwrotnego onConnected() użyj metody hasConnectedApi(), aby mieć pewność, że każdy z żądanych 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 zewnętrznych sklepach z aplikacjami na Wear OS, takich jak: