Il est préférable que les applications Wear OS fonctionnent indépendamment d'un téléphone afin que les utilisateurs puissent effectuer des tâches sur une montre sans accéder à un téléphone Android ou iOS. Si une interaction avec le téléphone est nécessaire pour le fonctionnement de l'application de la montre, vous devez marquer votre application Wear OS comme non autonome et faire le nécessaire afin de vous assurer que l'utilisateur a accès à l'application pour téléphone.
Planifier votre application
Vous pouvez utiliser le format Android App Bundle pour générer automatiquement des APK (Android Package Kit) optimisés pour la configuration de l'appareil de chaque utilisateur dans la même fiche d'application. Cela permet aux utilisateurs de ne télécharger que le code et les ressources dont ils ont besoin pour exécuter votre application.
Pour en savoir plus sur la configuration de votre application en vue de sa distribution via le Google Play Store, consultez Compresser et distribuer des applications Wear et lisez le guide de démarrage pour les fichiers Android App Bundle.
Pour les nouvelles applications, le niveau d'API cible doit être supérieur ou égal à 30. Pour en savoir plus, consultez Respecter le niveau d'API cible requis par Google Play. Définissez targetSdkVersion
sur le niveau d'API 30 (Wear OS 3) pour vous assurer que votre application fonctionne correctement sur la dernière version de la plate-forme.
Pour en savoir plus sur les requêtes réseau et l'accès au réseau à bande passante élevée, consultez la section Accès au réseau et synchronisation sur Wear OS.
Définir une application en tant qu'application Wear OS
Vous devez définir la balise
<uses-feature>
dans le fichier manifeste Android de votre application.
Pour indiquer qu'il s'agit d'une application de la montre, ajoutez un élément comme illustré dans l'exemple suivant :
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
Identifier une application comme autonome ou non autonome
Une application de la montre est considérée comme autonome ou non autonome :
- Autonome: une application entièrement indépendante qui ne nécessite pas d'application pour téléphone pour la version de base caractéristiques. Bien que "Ouvrir sur le téléphone" invite de commande sont acceptables, l'application doit fournir permet aux utilisateurs d'exécuter une fonction de l'application, comme un lien court ou un code QR, sans dépendre sur un téléphone partagé.
- Non autonome: une application dépendante qui nécessite une application sur un téléphone ou un autre appareil pour ses fonctionnalités essentielles. Cette option est idéale pour les applications qui ne peuvent pas fournir un autre moyen, tel qu'un code QR ou un lien court, pour l'exécution d'une fonction essentielle de l'application, telle que l'authentification.
Remarque:Même pour les applications non autonomes, les utilisateurs peuvent installer le Wear OS avant l'application mobile. Ainsi, si votre application Wear OS détecte qu'un l'appareil portable à proximité n'a pas l'application associée nécessaire, demandez à l'utilisateur pour installer l'application associée.
Google valide l'exactitude de l'état autonome d'une application au cours de son exécution. de l'inférence. Cette valeur a une incidence sur la visibilité des applications sur le Play Store à Les appareils sans partage de connexion, tels que les appareils Wear OS qui ne sont pas associés à un appareil portable appareils. Les applications non autonomes, ainsi que celles que les développeurs ont incorrectement sont désignés comme "autonomes" et ne sont pas accessibles aux utilisateurs appareils.
Dans votre application Wear OS, définissez la valeur de l'élément
meta-data
com.google.android.wearable.standalone
dans le fichier manifeste Android afin d'indiquer si votre application est autonome ou non autonome.
Si l'application de la montre que vous avez développée est autonome, précisez-le dans le Google Play Store en définissant la valeur de com.google.android.wearable.standalone
sur true
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
Si l'application de la montre n'est pas autonome et si ses fonctionnalités principales dépendent d'une autre application, définissez com.google.android.wearable.standalone
sur false
. Cela signifie que l'application de la montre nécessite un autre appareil, mais cela n'aura pas d'incidence sur la promotion de cette application sur le Google Play Store.
Remarque : Même si la valeur de com.google.android.wearable.standalone
est false
, l'application de la montre peut être installée avant l'installation de l'application pour téléphone.
Par conséquent, si l'application de la montre détecte qu'un téléphone associé ne dispose pas de l'application pour téléphone requise, comme décrit sur cette page, invitez l'utilisateur à installer l'application pour téléphone.
Code partagé et stockage de données
Le code peut être partagé entre une application Wear OS et une application pour téléphone. Par exemple, un code commun de mise en réseau peut se trouver dans une bibliothèque partagée.
Le code spécifique à un facteur de forme peut éventuellement se trouver dans un module distinct.
Vous pouvez utiliser les API de stockage Android standards pour stocker des données localement, comme sur un téléphone. Par exemple, vous pouvez utiliser les API SharedPreferences ou la bibliothèque de persistance Room.
Détecter votre application sur un autre appareil
L'application de la montre et l'application pour téléphone correspondante peuvent toutes les deux détecter si l'autre application est disponible.
L'application pour téléphone et l'application de la montre peuvent utiliser CapabilityClient
pour annoncer la présence de l'application sur un appareil associé. Cette opération peut s'effectuer de manière statique ou dynamique.
Lorsqu'une application se trouve dans un nœud du réseau Wear OS d'un utilisateur (par exemple, sur un téléphone, une montre associée ou dans le cloud), la classe CapabilityClient
permet à une autre application de la détecter. Pour en savoir plus, consultez Annoncer des fonctionnalités.
Si l'une de vos applications ne peut pas détecter l'autre, vous pouvez inviter l'utilisateur à ouvrir la fiche Play Store sur l'appareil concerné. Cette solution est destinée aux applications de la montre qui nécessitent la présence d'une application pour téléphone associé afin de fonctionner correctement.
Vous devez vérifier si le Play Store est disponible sur l'appareil, car certains téléphones (comme les iPhone) ne sont pas compatibles avec le Play Store.
Les sections suivantes décrivent les bonnes pratiques pour deux scénarios :
- L'application autonome de la montre a besoin de l'application pour téléphone.
- L'application pour téléphone a besoin de l'application autonome de la montre.
Vous pouvez également consulter les
Exemple d'aide à la couche de données, qui montre comment utiliser
<ph type="x-smartling-placeholder"></ph>
Bibliothèques d'aide à la couche de données, qui font partie de
Horologist. Ces assistants vous permettent de contrôler la connexion entre un appareil
et un appareil Wear OS.
Pour en savoir plus,
sur les classes décrites dans la section suivante, consultez le
Documentation de référence de l'API Wear OS
Cette référence inclut également des informations sur
<ph type="x-smartling-placeholder"></ph>
la classe PhoneTypeHelper
, qui contient
<ph type="x-smartling-placeholder"></ph>
getPhoneDeviceType()
qui permet à
L'application Wear OS vérifie si un téléphone associé est un appareil Android ou iOS.
Spécifier des noms de fonctionnalités permettant de détecter vos applications
Pour l'application correspondant à chaque type d'appareil (montre ou téléphone), spécifiez une chaîne unique pour le nom de la fonctionnalité dans le fichier res/values/wear.xml
.
Par exemple, dans votre module mobile, le fichier wear.xml
peut inclure les éléments suivants :
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
Dans votre module Wear OS, le fichier wear.xml
comprend une valeur différente du nom de la fonctionnalité, par exemple :
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
Pour en savoir plus, consultez Annoncer des fonctionnalités.
Détecter des applications et ouvrir une URL depuis une montre
L'application de la montre peut détecter si l'application pour téléphone est disponible sur le téléphone associé d'un utilisateur. Pour cela, procédez comme suit :
-
Utilisez le
CapabilityClient
afin de vérifier si l'application pour téléphone est installée sur le téléphone associé. Pour en savoir plus, consultez les <ph type="x-smartling-placeholder"></ph> Exemple d'assistants Datalayer sur GitHub. -
Si l'application pour téléphone n'est pas installée sur le téléphone, vérifiez le type de téléphone à l'aide de la méthode
PhoneDeviceType.getPhoneDeviceType()
. Pour en savoir plus, consultez la section suivante. -
Si
PhoneDeviceType.DEVICE_TYPE_ANDROID
est renvoyé, il s'agit d'un téléphone Android. AppelezRemoteActivityHelper.startRemoteActivity()
sur l'appareil Wear OS pour ouvrir le Play Store sur le téléphone. Utilisez l'URI du marché de l'application pour téléphone, qui peut être différent de l'URI de votre application Wear. Par exemple, servez-vous d'un URI de marché tel quemarket://details?id=com.example.android.wearable.wear.finddevices
. -
Si
PhoneDeviceType.DEVICE_TYPE_IOS
est renvoyé, le téléphone est un téléphone iOS n'ayant pas accès au Play Store. Ouvrez l'App Store sur l'iPhone en appelantRemoteActivityHelper.startRemoteActivity()
sur l'appareil Wear OS. Vous pouvez spécifier l'URL iTunes de votre application, par exemplehttps://itunes.apple.com/us/app/yourappname
.Wear OS ne vous permet pas de déterminer de manière programmatique si l'application pour téléphone est installée sur un appareil iOS. Il est recommandé de donner à l'utilisateur un moyen de déclencher manuellement l'ouverture de l'App Store.
Remarque : Utilisez l'API RemoteActivityHelper
décrite précédemment pour spécifier qu'une URL doit être ouverte sur le téléphone depuis la montre et qu'aucune application pour téléphone n'est requise.
Détails permettant de détecter le type de téléphone associé
Voici un extrait qui utilise la méthode getPhoneDeviceType()
pour vérifier le type de téléphone auquel la montre est associée :
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
La valeur renvoyée par la méthode getPhoneDeviceType()
est l'une des suivantes :
Valeur renvoyée | Description |
---|---|
DEVICE_TYPE_ANDROID
|
Le téléphone associé est un appareil Android. |
DEVICE_TYPE_IOS
|
Le téléphone associé est un appareil iOS. |
DEVICE_TYPE_UNKNOWN
|
Le téléphone associé est un appareil inconnu. |
DEVICE_TYPE_ERROR
|
Une erreur s'est produite lors de l'identification du type de téléphone associé. Une autre vérification doit être effectuée ultérieurement. |
Détection des applications à partir d'un téléphone Android
Votre téléphone Android peut détecter si les appareils Wear OS d'un utilisateur disposent de votre application de montre. Pour cela, procédez comme suit :
-
Utilisez le
NodeClient
pour rechercher toutes les montres connectées au téléphone de l'utilisateur. Pour en savoir plus, consultez les <ph type="x-smartling-placeholder"></ph> Exemple d'assistants Datalayer sur GitHub. -
Utilisez le
CapabilityClient
pour identifier les montres de l'utilisateur sur lesquelles votre application est installée. -
Si votre application n'est pas installée sur toutes ses montres, autorisez l'utilisateur à ouvrir le Play Store sur les appareils Wear OS restants depuis le téléphone à l'aide de la méthode
RemoteActivityHelper.startRemoteActivity()
. Utilisez l'URI du marché pour l'application Wear OS, qui peut être différent de l'URI de l'application pour téléphone. Par exemple, servez-vous d'un URI de marché tel quemarket://details?id=com.example.android.wearable.wear.finddevices
.
Données de localisation pour les montres associées à des iPhone
Pour les montres associées à des iPhone, utilisez le Fused Location Provider (FLP) pour obtenir les données de localisation d'une montre. Pour en savoir plus, consultez Détecter la position sur Wear OS.
Si le téléphone associé est disponible, FLP l'utilise pour obtenir les données de localisation.
Obtenir uniquement les données nécessaires
En règle générale, lorsque vous obtenez des données depuis Internet, limitez-vous aux données nécessaires. Sinon, vous risquez de provoquer une latence et une utilisation de la mémoire et de la batterie inutiles.
Lorsqu'une montre est connectée via une connexion Bluetooth LE, votre application peut avoir accès à une bande passante de seulement 4 kilo-octets par seconde, selon la montre. Par conséquent, nous vous recommandons de suivre les instructions suivantes :
- Effectuez un audit sur les requêtes et les réponses réseau afin de trouver des données supplémentaires destinées uniquement à une application pour téléphone.
- Réduisez les images volumineuses avant de les envoyer à une montre via un réseau.
Pour les cas où un réseau à bande passante élevée est nécessaire, consultez Accès réseau à haut débit.
Autres exemples de code
La <ph type="x-smartling-placeholder"></ph> L'exemple d'aide à la couche de données illustre davantage l'utilisation des API abordées sur cette page.