Wear OS-Apps für China erstellen

Wenn Sie Wear OS-Apps für China erstellen, müssen Sie Geräte berücksichtigen, auf denen die Google Play Dienste nicht vorinstalliert sind. Auf dieser Seite finden Sie häufige Änderungen, die Entwickler möglicherweise für den chinesischen Markt vornehmen müssen.

Die richtige Version der Google Play-Dienste verwenden

Die Google Play-Dienste-Version 10.2.0 bietet weltweiten Support 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 größere Auswahl an Wear OS-Geräten in China zu unterstützen. In anderen Fällen ist diese Abhängigkeit optional.

Hinweis: Obwohl die Google Play-Dienste APIs für Wear OS-Apps enthalten, sollten Wear OS-Apps für China weiterhin APIs verwenden, die mit GoogleApiClient verknüpft sind. 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 die folgende Abhängigkeit in die build.gradle Datei Ihres 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 Ihre App die Data Layer API verwendet, müssen Sie die folgende Zeile in die build.gradle Datei Ihres Wear OS-Moduls einfügen. Für die Zeile ist die Version 10.2.0 von 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 die folgende Zeile in die build.gradle-Datei Ihres mobilen Moduls ein. Ersetzen Sie die Google Play-Dienste-Abhängigkeit 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 sie tatsächlich erforderlich ist. Bei einer App, die beispielsweise die Wettervorhersage liefert, ist keine Anmeldung und somit keine Authentifizierung erforderlich.

Wenn Sie eine Authentifizierung benötigen, empfehlen wir die Verwendung der AndroidX OAuth 2.0-Bibliothek. Dazu ist die Verwendung des Autorisierungscode-Grant mit PKCE -Flow erforderlich. 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

Überbrückte Benachrichtigungen werden in China nicht unterstützt. Smartphone-Benachrichtigungen werden nur dann an Wear OS überbrückt, 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 auch für den Rest der Welt tun würden. So wird sichergestellt, dass Ihre App die besten Informationen berücksichtigt, unabhängig von der Smartwatch-Hardware und der Smartphone-Plattform, mit der die Smartwatch gekoppelt ist. Durch die Verwendung von FLP wird auch die in die Wear OS-Plattform integrierte Akku-Optimierung hinzugefügt.

Berücksichtigen Sie bei der Integration von FusedLocationProvider mit Karten-SDKs von Drittanbietern, die Kompatibilität der Koordinaten zwischen den Anbietern. FusedLocationProvider meldet den Standort gemäß dem WGS84 Standard. Konvertieren Sie die Koordinatensysteme nach Bedarf.

Google Fit-Unterstützung

Der kumulierte Schrittzähler, die Bewegungsminuten und die Herzpunkte von Google Fit werden in China mit einem Verlauf von bis zu sieben Tagen unterstützt. Sie können darauf zugreifen, ohne Anmeldedaten anzugeben.

Unterstützung für Sprachaktionen

Die Wear OS-Plattform bietet mehrere Sprach-Intents, die auf Nutzeraktionen wie _„Herzfrequenz anzeigen“_ oder _„Wecker stellen“_ basieren. 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 ausführen, kann Ihre App nach dem Intent filtern, das zum Starten einer Aktivität ausgelöst wird. Um einen Dienst im Hintergrund zu starten, zeigen Sie eine Aktivität als visuellen Hinweis an und starten Sie den Dienst in der Aktivität. Rufen Sie finish() auf, um den visuellen Hinweis zu entfernen.

Hier ist eine Liste der Sprach-Intents, die von der Wear OS-Plattform unterstützt werden:

Kategorie Beispiel Intent-Spezifikation
Taxiservice 打车去三里屯 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. Geben Sie entweder beide oder keines dieser Extras an.

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

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH: eine Ganzzahl im Bereich von 1 bis 86400 (die Anzahl der Sekunden in 24 Stunden), die die Länge des Timers darstellt

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=融科资讯中心

Der Sprachassistent kann gegebenenfalls auch vorhandene allgemeine Android-Intents verwenden, um bestimmte Verhaltensweisen auszulösen.

Emulatorunterstützung

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

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

  1. Installieren Sie den Android-Emulator.
  2. Laden Sie die Wear OS for China-Images über den 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 for China-Image aus.
  4. Führen Sie den Wear OS for 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
  • Google Play Store (angepasst für Geräte in China)
  • Pocketwatch
  • 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 app-spezifischen Bluetooth- und WLAN-Kanal öffnet.

Wenn eine App in China einen app-spezifischen Bluetooth- und WLAN-Kanal anfordert, schlägt die Anfrage im Hintergrund fehl. Stattdessen wird ein Dialogfeld angezeigt, in dem der Nutzer um Bestätigung gebeten wird. Wenn der Nutzer bestätigt, wird der Kanal geöffnet. Dies geschieht 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 sie eine System-App oder ein Geräte-Policy-Controller (Device Policy Controller, DPC) sein.

Berechtigungsprüfungsmodus

In China werden Wear OS for China-Geräte im Berechtigungsprüfungsmodus ausgeführt, der einige Einschränkungen für die Verwendung von Apps mit einem targetApiLevel unter 23 mit sich bringt. Beachten Sie die folgenden Einschränkungen:

  • Obwohl Berechtigungen bei der Installation gewährt werden, wird beim ersten Starten einer App mit einem 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, z. B. Broadcast-Empfänger, Dienste und Aktivitäten reagieren erst auf entsprechende Ereignisse, wenn die App zum ersten Mal verwendet wird.

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

Andere Google Play-Dienste-APIs verwenden

Wenn Ihre App andere Google Play-Dienste-APIs als die Wearable API verwendet, muss sie zur Laufzeit prüfen, ob diese APIs verfügbar sind, und entsprechend reagieren. Es gibt zwei Möglichkeiten, die Verfügbarkeit von Google Play-Dienste-APIs zu prüfen:

  1. Verwenden Sie eine separate GoogleApiClient-Instanz, um eine Verbindung zu anderen APIs herzustellen. Diese Schnittstelle enthält Callbacks, um Ihre App über den Erfolg oder Fehler der Verbindung zu informieren. Bei einer fehlgeschlagenen Verbindung zeigt ConnectionResult API_UNAVAILABLE an. Informationen zum Beheben von Verbindungsfehlern finden Sie unter Auf Google APIs zugreifen.
  2. Verwenden Sie die addApiIfAvailable() Methode von GoogleApiClient.Builder, um eine Verbindung zu den erforderlichen APIs herzustellen. Nachdem der onConnected() Callback ausgelöst wurde, prüfen Sie mit der hasConnectedApi() Methode, ob jede der angeforderten APIs korrekt verbunden ist.

Apps in China bereitstellen

Um Nutzer von Wear OS for China effektiv zu erreichen, können Sie Ihre App über Wear OS-App-Shops von Drittanbietern wie die folgenden bereitstellen: