Wear OS-Apps für China erstellen

Beim Erstellen von Wear OS-Apps für China musst du auch Smartphones berücksichtigen, auf denen die Google Play-Dienste nicht vorinstalliert sind. Auf dieser Seite finden Sie häufige Änderungen, die Entwickler für den chinesischen Markt vornehmen müssen.

Die richtige Version der Google Play-Dienste verwenden

Die Version 10.2.0 der Google Play-Dienste bietet weltweite Unterstützung für die Fused Location Provider API und die Data Layer API. Sie müssen diese Version der Google Play-Dienste verwenden, wenn Sie diese APIs nutzen, um eine breitere Palette von Wear OS-Geräten in China zu unterstützen. In anderen Fällen ist diese Abhängigkeit optional.

Hinweis: Google Play-Dienste enthalten zwar APIs für Wear OS-Apps, Wear OS-Apps für China sollten jedoch weiterhin APIs verwenden, die sich auf GoogleApiClient beziehen. Weitere Informationen finden Sie unter Auf die Wearable API zugreifen.

Fused Location Provider API

Wenn du die Fused Location Provider API verwendest, füge die folgende Abhängigkeit in die Datei build.gradle deines Wear OS-Moduls ein:

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

Data Layer API

Wenn deine App die Data Layer API verwendet, musst du die folgende Zeile in die Datei build.gradle deines Wear OS-Moduls einfügen. Für die Zeile ist die Version 10.2.0 der Clientbibliothek erforderlich.

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

Fügen Sie der Datei build.gradle des mobilen Moduls die folgende Zeile hinzu. Ersetzen Sie die Abhängigkeit von den Google Play-Diensten durch einen Verweis auf die Version 10.2.0.

Cool

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

Authentifizierung

Bevor Sie die Authentifizierung implementieren, prüfen Sie Ihre Anwendungsfälle, um festzustellen, ob eine Authentifizierung tatsächlich erforderlich ist. Für eine App, die die Wettervorhersage liefert, ist beispielsweise keine Anmeldung und damit keine Authentifizierung erforderlich.

Wenn eine Authentifizierung erforderlich ist, empfehlen wir die Verwendung der AndroidX Oauth-Bibliothek. Dazu muss der Ablauf Autorisierungscode mit PKCE verwendet werden. Sie können auch eine der anderen Methoden verwenden, die unter Authentifizierung auf Wearables beschrieben sind. Die Verwendung der Wearable Support Library wird nicht empfohlen.

Weitere Informationen finden Sie im Wear OS OAuth-Beispiel auf GitHub.

Überbrückte Benachrichtigungen

Brückenbenachrichtigungen werden in China nicht unterstützt. Telefonbenachrichtigungen werden nur dann an Wear OS weitergeleitet, wenn das Wear OS-Gerät über Bluetooth mit dem Smartphone verbunden ist.

Kompatibilität von Standort- und Kartenkoordinaten

Verwenden Sie FusedLocationProvider (FLP), um den Standort des Nutzers in China zu ermitteln, wie Sie es für den Rest der Welt tun würden. Dadurch wird sichergestellt, dass deine App unabhängig von der Hardware der Smartwatch und der Smartphoneplattform, mit der die Smartwatch gekoppelt ist, die besten Informationen berücksichtigt. Wenn Sie die FLP verwenden, wird auch die in die Wear OS-Plattform integrierte Akkuoptimierung aktiviert.

Berücksichtigen Sie bei der Einbindung von FusedLocationProvider in Karten-SDKs von Drittanbietern die Kompatibilität der Koordinaten zwischen den Anbietern. FusedLocationProvider meldet den Standort gemäß dem WGS84-Standard. Konvertieren Sie gegebenenfalls die Koordinatensysteme.

Google Fit-Support

Google Fit- Schrittzähler-, Aktivitätsminuten und Kardiopunkte werden in China unterstützt, wobei der Verlauf bis zu 7 Tage zurückliegen kann. Sie können darauf zugreifen, ohne Nutzeranmeldedaten anzugeben.

Unterstützung für Sprachbefehle

Die Wear OS-Plattform bietet mehrere Sprachabsichten, die auf Nutzeraktionen basieren, z. B. „Herzfrequenz anzeigen“ oder „Wecker stellen“. So können Nutzer sagen, was sie tun möchten, und das System ermittelt die beste Aktivität, die gestartet werden soll.

Wenn Nutzer eine Sprachaktion aussprechen, kann Ihre App nach der Absicht filtern, die ausgelöst wird, um eine Aktivität zu starten. Wenn Sie einen Dienst im Hintergrund starten möchten, zeigen Sie eine Aktivität als visuellen Hinweis an und starten Sie den Dienst in der Aktivität. Rufen Sie finish() auf, um das visuelle Signal zu entfernen.

Hier finden Sie eine Liste der Sprachabsichten, die von der Wear OS-Plattform unterstützt werden:

Category Beispiel Intent-Spezifikation
Fahrdienst 打车去三里屯 Aktion

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Extra

to: das erkannte Ziel

Das Extra ist optional.

Wecker stellen Aktion

android.intent.action.SET_ALARM

Extras

android.provider.AlarmClock.EXTRA_HOUR: eine Ganzzahl mit der Stunde des Weckers

android.provider.AlarmClock.EXTRA_MINUTES: eine Ganzzahl mit der Minute des Weckers

Diese Extras sind optional. Sie können entweder, beide oder keine dieser zusätzlichen Informationen angeben.

Timer einstellen 设置一个三分钟的倒计时 Aktion

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH: eine Ganzzahl zwischen 1 und 86.400 (die Anzahl der Sekunden in 24 Stunden), die die Länge des Timers angibt

Stoppuhr starten 开始计时 Aktion

com.google.android.wearable.action.STOPWATCH

Fahrradtour starten oder beenden 开始骑车 Aktion

vnd.google.fitness.TRACK

MIME-Typ

vnd.google.fitness.activity/biking

Weitere Funktionen

actionStatus: ein String mit dem Wert ActiveActionStatus beim Starten und CompletedActionStatus beim Beenden

Lauf starten oder beenden 开始跑步 Aktion

vnd.google.fitness.TRACK

MIME-Typ

vnd.google.fitness.activity/running

Extras

actionStatus: ein String mit dem Wert ActiveActionStatus beim Starten und CompletedActionStatus beim Beenden

Training starten oder beenden 开始锻炼 Aktion

vnd.google.fitness.TRACK

MIME-Typ

vnd.google.fitness.activity/other

Extras

actionStatus: ein String mit dem Wert ActiveActionStatus beim Starten und CompletedActionStatus beim Beenden

Herzfrequenz anzeigen 查看心率 Aktion

vnd.google.fitness.VIEW

MIME-Typ

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

Schrittzahl anzeigen 查看步数 Aktion

vnd.google.fitness.VIEW

MIME-Typ

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

Navigation 导航去三里屯 Aktion

android.intent.action.VIEW

Daten

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

Voice Assistant kann auch vorhandene allgemeine Android-Intents verwenden, um gegebenenfalls bestimmte Aktionen auszulösen.

Emulator-Unterstützung

Sie können die China-Version des Wear OS-Emulator-Images verwenden, um Ihre Apps zu testen. Diese Funktion wird von Android Studio 3.0 und höher unterstützt.

So testen Sie Ihre Apps mit der chinesischen Version des Emulators:

  1. Installieren Sie den Android-Emulator.
  2. Lade die Wear OS for China-Images im SDK-Manager herunter. Verwenden Sie die Version für Wear OS 3.5 (API-Level 30).
  3. Wählen Sie beim Erstellen eines AVD-Profils das Wear OS für China-Image aus.
  4. Führen Sie den Wear OS für China-Emulator für die Entwicklung aus.
  5. Abbildung 1. Beispiele für die chinesische Version des Wear OS-Emulators

Diese Version des Wear OS-Emulators enthält mehrere vorinstallierte Apps:

  • Umgebungsmodus
  • Kontakte
  • Google Handschrifteingabe
  • Google Play-Dienste
  • Gesundheitsdienste für Wear OS
  • Hotword-Erkennung für LE-Geräte
  • Pinyin
  • Play Store (angepasst für Geräte in China)
  • Taschenuhr
  • TalkBack
  • Zifferblätter (sowohl analoge als auch digitale Versionen)
  • Wear-Hauptdienste

App-spezifischen Bluetooth- und WLAN-Kanal initiieren

Wear OS leitet Netzwerkanfragen automatisch weiter. In den meisten Fällen muss die App keinen appspezifischen Bluetooth- oder WLAN-Kanal öffnen.

Wenn eine App in China einen anwendungsspezifischen Bluetooth- und WLAN-Kanal anfordert, schlägt die Anfrage stillschweigend fehl. Stattdessen wird ein Dialogfeld angezeigt, in dem der Nutzer um Bestätigung gebeten wird. Wenn der Nutzer zustimmt, wird der Kanal geöffnet. Das passiert jedes Mal, nicht nur bei der ersten Verwendung. BluetoothAdapter.enable() oder WifiManager.setEnabled(true) wird aufgerufen.

Hinweis : Damit eine App, die auf Android 10 (API-Level 29) oder höher ausgerichtet ist, WifiManager.setEnabled() aufrufen kann, muss es eine System-App oder ein Device Policy Controller (DPC) sein.

Modus zur Überprüfung von Berechtigungen

In China werden Wear OS for China-Geräte im Modus „Berechtigungsprüfung“ ausgeführt, der einige Einschränkungen für die Verwendung von Apps mit einer targetApiLevel unter 23 vorsieht. Beachten Sie die folgenden Limits:

  • Obwohl Berechtigungen bei der Installation gewährt werden, wird beim ersten Start einer App mit einer targetApiLevel unter 23 ein Dialogfeld angezeigt, in dem der Nutzer aufgefordert wird, die Berechtigungen für diese App zu bestätigen.
  • Komponenten in der App wie Broadcastempfänger, Dienste und Aktivitäten reagieren nicht auf entsprechende Ereignisse, bevor die App zum ersten Mal verwendet wird.

Daher empfehlen wir, targetApiLevel 23 oder höher zu verwenden und die Best Practices für App-Berechtigungen zu übernehmen.

Andere APIs der Google Play-Dienste verwenden

Wenn Ihre App neben der Wearable API auch Google Play-Dienst-APIs verwendet, muss sie prüfen, ob diese APIs während der Laufzeit verfügbar sind, und entsprechend reagieren. Es gibt zwei Möglichkeiten, die Verfügbarkeit von Google Play-Dienst-APIs zu prüfen:

  1. Verwenden Sie eine separate GoogleApiClient-Instanz für die Verbindung zu anderen APIs. Diese Schnittstelle enthält Callbacks, mit denen die App über den Erfolg oder Fehler der Verbindung informiert wird. Bei einer fehlgeschlagenen Verbindung wird anstelle von ConnectionResult API_UNAVAILABLE angezeigt. Informationen zum Umgang mit Verbindungsfehlern finden Sie unter Zugriff auf Google APIs.
  2. Verwenden Sie die Methode addApiIfAvailable() von GoogleApiClient.Builder, um eine Verbindung zu den erforderlichen APIs herzustellen. Nachdem der Callback onConnected() ausgelöst wurde, verwende die Methode hasConnectedApi(), um dafür zu sorgen, dass jede der angeforderten APIs korrekt verbunden ist.

Apps in China bereitstellen

Wenn Sie Nutzer von Wear OS in China effektiv erreichen möchten, können Sie Ihre App über Wear OS-App-Shops von Drittanbietern wie die folgenden vertreiben: