Créer des applications Wear OS pour la Chine

Lorsque vous créez des applications Wear OS pour la Chine, vous devez tenir compte des téléphones sur lesquels les services Google Play ne sont pas préinstallés. Cette page présente les modifications courantes que les développeurs peuvent être amenés à effectuer pour le marché chinois.

Utiliser la version correcte des services Google Play

La version 10.2.0 des services Google Play assure une compatibilité internationale avec l'API Fused Location Provider et l'API Data Layer. Vous devez utiliser cette version des services Google Play avec ces API pour garantir la prise en charge d'un plus grand nombre d'appareils Wear OS en Chine. Dans les autres cas, cette dépendance est facultative.

Remarque : Bien que les services Google Play contiennent des API pour les applications Wear OS, les applications Wear OS destinées au marché chinois doivent continuer à utiliser les API associées à GoogleApiClient. Consultez Accéder à l'API Wearable.

API Fused Location Provider

Si vous utilisez l'API Fused Location Provider, incluez la dépendance suivante dans le fichier build.gradle de votre module Wear OS :

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

API Data Layer

Si votre application utilise l'API Data Layer, vous devez ajouter la ligne suivante au fichier build.gradle de votre module Wear OS. Cette ligne nécessite l'utilisation de la version 10.2.0 de la bibliothèque cliente.

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

Ajoutez la ligne suivante au fichier build.gradle de votre module mobile. Remplacez la dépendance des services Google Play par une référence à la 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")
}

Authentification

Avant d'implémenter l'authentification, examinez vos cas d'utilisation pour déterminer si ce processus est vraiment nécessaire. Par exemple, dans le cas d'une application qui fournit des prévisions météo, il n'est probablement pas nécessaire de se connecter et donc de s'authentifier.

Si une authentification est requise, nous vous recommandons d'utiliser la bibliothèque Oauth d'AndroidX. Pour ce faire, vous devez utiliser le flux Octroi du code d'autorisation avec PKCE. Vous pouvez également utiliser l'une des autres méthodes décrites dans Authentification sur les accessoires connectés. Il est déconseillé d'utiliser la bibliothèque Wearable Support.

Pour en savoir plus, consultez l'exemple Wear OS Oauth sur GitHub.

Notifications en mode Pont

Les notifications en mode Pont ne sont pas disponibles en Chine. Les notifications du téléphone ne sont associées à Wear OS que si l'appareil Wear OS est connecté au téléphone en Bluetooth.

Compatibilité des coordonnées cartographiques et de localisation

Utilisez FusedLocationProvider (FLP) pour détecter la position de l'utilisateur en Chine, comme vous le feriez pour le reste du monde. De cette façon, votre application prendra en compte les meilleures informations disponibles, quels que soient les composants matériels de la montre et la plate-forme du téléphone à laquelle la montre est associée. L'utilisation de FLP améliore également l'optimisation de la batterie qui est intégrée dans la plate-forme Wear OS.

Lorsque vous intégrez FusedLocationProvider dans des SDK de cartographie tiers, tenez compte de la compatibilité des coordonnées entre les différents fournisseurs. FusedLocationProvider signale la position conformément à la norme WGS84. Le cas échéant, veillez à convertir les systèmes de coordonnées.

Prise en charge de Google Fit

Le compteur de pas, les minutes actives et les points cardio de Google Fit sont disponibles en Chine, avec un historique maximum de sept jours. Vous pouvez y accéder sans fournir d'identifiants utilisateur.

Prise en charge des commandes vocales

La plate-forme Wear OS propose plusieurs intents vocaux basés sur des actions de l'utilisateur, comme "Afficher la fréquence cardiaque" ou "Régler une alarme". Ainsi, les utilisateurs peuvent indiquer ce qu'ils veulent faire et le système peut identifier la meilleure activité à démarrer.

Lorsque les utilisateurs énoncent une commande vocale, votre application peut déterminer l'intent déclenché pour démarrer une activité. Pour démarrer un service en arrière-plan, affichez une activité en tant que repère visuel et démarrez le service dans l'activité. Veillez à appeler finish() pour vous débarrasser du repère visuel.

Voici la liste des intents vocaux compatibles avec la plate-forme Wear OS :

Catégorie Exemple Spécification de l'intent
Héler un taxi 打车去三里屯 Action

com.google.android.gms.actions.RESERVE_TAXI_RESERVATION

Extra

to : destination reconnue

Cet extra est facultatif.

Régler une alarme 设置一个明早七点的闹钟 Action

android.intent.action.SET_ALARM

Extras

android.provider.AlarmClock.EXTRA_HOUR : nombre entier avec l'heure de l'alarme.

android.provider.AlarmClock.EXTRA_MINUTES : nombre entier avec les minutes de l'alarme.

Ces extras sont facultatifs. Veuillez fournir les deux ou n'en fournir aucun.

Régler un minuteur 设置一个三分钟的倒计时 Action

android.intent.action.SET_TIMER

Extras

android.provider.AlarmClock.EXTRA_LENGTH : nombre entier compris entre 1 et 86 400 (le nombre de secondes dans 24 heures) représentant la durée du minuteur.

Lancer le chronomètre 开始计时 Action

com.google.android.wearable.action.STOPWATCH

Démarrer ou arrêter une sortie à vélo 开始骑车 Action

vnd.google.fitness.TRACK

Type MIME

vnd.google.fitness.activity/biking

Extras

actionStatus : chaîne avec la valeur ActiveActionStatus au démarrage et CompletedActionStatus à l'arrêt.

Démarrer ou arrêter une séance de course à pied 开始跑步 Action

vnd.google.fitness.TRACK

Type MIME

vnd.google.fitness.activity/running

Extras

actionStatus : chaîne avec la valeur ActiveActionStatus au démarrage et CompletedActionStatus à l'arrêt

Démarrer ou arrêter un entraînement 开始锻炼 Action

vnd.google.fitness.TRACK

Type MIME

vnd.google.fitness.activity/other

Extras

actionStatus : chaîne avec la valeur ActiveActionStatus au démarrage et CompletedActionStatus à l'arrêt

Afficher la fréquence cardiaque 查看心率 Action

vnd.google.fitness.VIEW

Type MIME

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

Afficher le nombre de pas 查看步数 Action

vnd.google.fitness.VIEW

Type MIME

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

Navigation 导航去三里屯 Action

android.intent.action.VIEW

Données

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

L'Assistance vocale peut également utiliser des intents Android courants pour déclencher certains comportements, le cas échéant.

Prise en charge des émulateurs

Vous pouvez utiliser la version chinoise de l'image de l'émulateur Wear OS pour tester vos applications. Cette image est prise en charge par Android Studio 3.0 ou version ultérieure.

Pour tester vos applications sur la version chinoise de l'émulateur, procédez comme suit :

  1. Installez Android Emulator.
  2. Téléchargez les images Wear OS for China à partir de SDK Manager. Utilisez la version de Wear OS 3.5 (niveau d'API 30).
  3. Sélectionnez l'image Wear OS for China lorsque vous créez un profil AVD.
  4. Exécutez l'émulateur Wear OS for China pour le développement.
  5. Figure 1 : Exemples de la version chinoise de l'émulateur Wear OS

Cette version de l'émulateur Wear OS est fournie avec plusieurs applications préinstallées :

  • Mode ambiant
  • Contacts
  • Google Écriture manuscrite
  • Services Google Play
  • Services Santé pour Wear OS
  • Reconnaissance de mots clés pour les appareils LE
  • Pinyin
  • Play Store (adapté aux appareils en Chine)
  • Pocketwatch
  • TalkBack
  • Cadrans (versions analogique et numérique)
  • Services principaux Wear

Lancer un canal Bluetooth et Wi-Fi spécifique à l'application

Wear OS achemine automatiquement les requêtes réseau. Dans la plupart des cas, il n'est pas nécessaire que l'application ouvre un canal Bluetooth et Wi-Fi spécifique à l'application.

Si une application exige néanmoins un canal de ce type en Chine, la requête échoue silencieusement. À la place, une boîte de dialogue s'affiche pour demander la confirmation de l'utilisateur. Si l'utilisateur confirme, la chaîne s'ouvre. Cela se produit à chaque fois, et pas seulement lors de la première utilisation. BluetoothAdapter.enable() ou WifiManager.setEnabled(true) est appelé.

Remarque : Pour qu'une application ciblant Android 10 (niveau d'API 29) ou version ultérieure puisse appeler WifiManager.setEnabled(), il doit s'agir d'une application système ou d'un outil de contrôle des règles relatives aux appareils (DPC).

Mode d'examen des autorisations

En Chine, les appareils Wear OS for China s'exécutent en mode d'examen des autorisations, ce qui impose certaines limites concernant l'utilisation d'applications ayant un targetApiLevel inférieur à 23 : Consultez les limites suivantes :

  • Bien que les autorisations soient accordées au moment de l'installation, lors du premier démarrage d'une application ayant un targetApiLevel inférieur à 23, une boîte de dialogue s'affiche pour demander à l'utilisateur de confirmer les autorisations pour cette application.
  • Les composants de l'application, comme les broadcast receivers, les services et les activités, ne répondent pas aux événements correspondants avant la première utilisation de l'application.

Par conséquent, nous vous recommandons d'utiliser targetApiLevel 23 ou une version ultérieure et d'adopter les bonnes pratiques pour les autorisations des applications.

Utiliser d'autres API de services Google Play

Si votre application utilise des API de services Google Play autres que l'API Wearable, elle doit vérifier si ces API peuvent être utilisées pendant l'exécution et répondre de manière appropriée. Pour vérifier la disponibilité des API de services Google Play, vous disposez de deux méthodes :

  1. Utilisez une instance GoogleApiClient distincte pour vous connecter à d'autres API. Cette interface contient des rappels permettant d'alerter votre application en cas de réussite ou d'échec de la connexion. En cas d'échec de la connexion, la classe ConnectionResult affiche API_UNAVAILABLE. Pour savoir comment gérer les échecs de connexion, consultez Accéder aux API Google.
  2. Utilisez la méthode addApiIfAvailable() de GoogleApiClient.Builder pour vous connecter aux API requises. Une fois le rappel onConnected() déclenché, utilisez la méthode hasConnectedApi() pour vous assurer que chacune des API demandées est correctement connectée.

Distribuer des applications en Chine

Afin de toucher efficacement les utilisateurs de Wear OS for China, vous pouvez distribuer vos applications sur des plates-formes de téléchargement d'applications Wear OS tierces, comme celles-ci :