Wear OS-Apps für China erstellen

Wenn Sie Wear OS-Apps für China erstellen, müssen Sie Smartphones berücksichtigen, auf denen keine Google Play-Dienste 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 verwenden, 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 Sie die Fused Location Provider API verwenden, fügen Sie der build.gradle-Datei Ihres Wear OS-Moduls die folgende Abhängigkeit hinzu:

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 Ihre App die Data Layer API verwendet, müssen Sie der build.gradle-Datei Ihres Wear OS-Moduls die folgende Zeile hinzufü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 build.gradle-Datei Ihres 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.

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

Authentifizierung

Bevor Sie die Authentifizierung implementieren, prüfen Sie Ihre Anwendungsfälle, um festzustellen, ob die 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. Smartphone-Benachrichtigungen 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. So werden in Ihrer App unabhängig von der Smartwatch-Hardware und der Smartphone-Plattform, 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 gibt den Standort gemäß dem WGS84-Standard an. Konvertieren Sie gegebenenfalls die Koordinatensysteme.

Google Fit-Support

In China werden der Anzahl der Schritte, die Aktivitätsminuten und die Kardiopunkte von Google Fit mit einem Verlauf von bis zu sieben Tagen unterstützt. Sie können darauf zugreifen, ohne Anmeldedaten 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

Extras

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. Laden Sie die Wear OS-Images für China aus dem 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 (für Geräte in China angepasst)
  • 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 ist es nicht erforderlich, dass die App einen appspezifischen Bluetooth- und WLAN-Kanal öffnet.

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 : Eine App, die auf Android 10 (API-Level 29) oder höher ausgerichtet ist und WifiManager.setEnabled() aufrufen soll, muss eine System-App oder ein Device Policy Controller (DPC) sein.

Modus zur Überprüfung von Berechtigungen

In China werden Wear OS für China-Geräte im Modus zur Berechtigungsprüfung ausgeführt. Dies schränkt die Verwendung von Apps mit einer targetApiLevel unter 23 ein. Beachten Sie die folgenden Limits:

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

Wir empfehlen daher, targetApiLevel 23 oder höher zu verwenden und die Best Practices für App-Berechtigungen zu beachten.

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, um Ihre App über den Erfolg oder Fehler der Verbindung zu informieren. 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 sicherzustellen, dass alle angeforderten APIs richtig verbunden sind.

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: