Wear OS-Apps für China erstellen

Wenn Sie Wear OS-Apps für China erstellen, müssen Sie Smartphones ohne vorinstallierte Google Play-Dienste berücksichtigen. 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

Mit Version 10.2.0 der Google Play-Dienste wird die Fused Location Provider API und die Data Layer API weltweit unterstützt. 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:Google Play-Dienste enthalten zwar APIs für Wear OS-Apps, Wear OS-Apps für China sollten aber weiterhin APIs verwenden, die mit GoogleApiClient zusammenhängen. 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 der Datei build.gradle Ihres Wear OS-Moduls 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 die folgende Zeile der Datei build.gradle Ihres mobilen Moduls hinzu. Ersetzen Sie die Abhängigkeit von 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, sollten Sie Ihre Anwendungsfälle prüfen, um festzustellen, ob sie tatsächlich erforderlich ist. Bei einer App, die den Wetterbericht liefert, ist beispielsweise wahrscheinlich keine Anmeldung und damit keine Authentifizierung erforderlich.

Wenn Sie eine Authentifizierung benötigen, 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 werden. 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 weitergeleitet, wenn das Wear OS-Gerät über Bluetooth mit dem Smartphone verbunden ist.

Kompatibilität von Standort- und Kartenkoordinaten

Verwenden Sie die 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 Hardware der Smartwatch und der Smartphone-Plattform, mit der die Smartwatch gekoppelt ist. Durch die Verwendung der FLP wird auch die in die Wear OS-Plattform integrierte Akkuoptimierung genutzt.

Wenn Sie FusedLocationProvider in Karten-SDKs von Drittanbietern einbinden, müssen Sie die Kompatibilität der Koordinaten zwischen den Anbietern berücksichtigen. FusedLocationProvider gibt den Standort gemäß dem WGS84-Standard an. Koordinatensysteme müssen gegebenenfalls konvertiert werden.

Google Fit-Unterstützung

Die kumulierten Schrittzähler, Aktivitätsminuten und Kardiopunkte von Google Fit werden in China mit einem Verlauf von bis zu sieben Tagen unterstützt. Sie können darauf zugreifen, ohne Nutzeranmeldedaten anzugeben.

Unterstützung von Sprachbefehlen

Die Wear OS-Plattform bietet mehrere Sprach-Intents, die auf Nutzeraktionen wie „Zeige meine Herzfrequenz an“ oder „Stelle einen Wecker“ basieren. So können Nutzer sagen, was sie tun möchten, und das System kann die beste Aktivität dafür auswählen.

Wenn Nutzer eine Sprachaktion aussprechen, kann Ihre App nach dem Intent filtern, der zum Starten einer Aktivität ausgelöst wird. 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 den visuellen Hinweis zu entfernen.

Hier finden Sie eine Liste der Sprach-Intents, 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 Alarms

Diese Extras sind optional. Geben Sie entweder beide oder keine dieser Extras an.

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

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH: Eine Ganzzahl im Bereich von 1 bis 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

Workout 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 Schritte ansehen 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 auch vorhandene allgemeine Android-Intents verwenden, um bestimmte Verhaltensweisen auszulösen, sofern dies möglich ist.

Emulatorunterstü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 in der China-Version des Emulators:

  1. Installieren Sie den Android-Emulator.
  2. Laden Sie die Wear OS für China-Images über den SDK-Manager herunter. Verwende 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 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 Handwriting Input
  • 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)
  • 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 ohne Fehlermeldung fehl. Stattdessen wird ein Dialogfeld angezeigt, in dem der Nutzer um Bestätigung gebeten wird. Wenn der Nutzer dies bestätigt, wird der Kanal geöffnet. Das passiert jedes Mal, nicht nur bei der ersten Verwendung. BluetoothAdapter.enable() oder WifiManager.setEnabled(true) wird aufgerufen.

Hinweis : Wenn eine App, die auf Android 10 (API-Level 29) oder höher ausgerichtet ist, WifiManager.setEnabled() aufrufen soll, muss sie eine System-App oder ein Geräterichtliniencontroller (Device Policy Controller, DPC) sein.

Berechtigungsüberprüfungsmodus

In China werden Wear OS für China-Geräte im Berechtigungsüberprüfungsmodus ausgeführt. Dies schränkt die Verwendung von Apps mit einem targetApiLevel unter 23 ein. Beachten Sie die folgenden Einschränkungen:

  • Auch wenn Berechtigungen bei der Installation erteilt werden, wird beim ersten Start 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 zu verwenden und die Best Practices für App-Berechtigungen zu beachten.

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. Wenn die Verbindung fehlschlägt, wird auf dem ConnectionResult API_UNAVAILABLE angezeigt. Informationen zum Beheben von Verbindungsfehlern finden Sie unter Auf Google APIs zugreifen.
  2. Verwenden Sie die Methode addApiIfAvailable() von GoogleApiClient.Builder, um eine Verbindung zu den erforderlichen APIs herzustellen. Nachdem der Callback onConnected() ausgelöst wurde, verwenden Sie die Methode hasConnectedApi(), um sicherzustellen, dass jede der angeforderten APIs richtig verbunden ist.

Apps in China bereitstellen

Wenn Sie Nutzer von Wear OS in China effektiv erreichen möchten, können Sie Ihre App über Drittanbieter-App-Stores für Wear OS vertreiben, z. B. über die folgenden: