Une application Wear OS peut fonctionner indépendamment d’un téléphone. Les utilisateurs peuvent effectuer des tâches sur une montre, sans accès à un téléphone Android ou iOS.
Reportez-vous aux ressources connexes suivantes:
- Vérifier l’échantillon d’Application à Distance
- Planifiez vos applications
- Identifier une application comme autonome
- Définir une application en tant qu’application Wear
- Stockage de code et de données partagés
- Détecter votre application sur un autre appareil
- Spécifiez des noms de capacités pour détecter vos applications
- Détection d’application et ouverture d’une URL à partir d’une montre
- Détails pour détecter le type de téléphone associé
- Kotlin
- Java
- Détection d’application à partir d’un téléphone Android
- Données de localisation pour les montres couplées à des iPhones
- Obtenir uniquement les données nécessaires
- Exemples de code supplémentaires
Planifiez vos applications
Vous pouvez utiliser la fonction APK multiple (multi-APK) de Google Play pour publier plus d’un APK sous la même liste d’applications. Un APK de montre doit être distribué à l’aide de cette fonctionnalité; n’intégrez pas un APK de montre dans un APK de téléphone. Pour plus d’informations sur la configuration de votre application en vue de sa distribution via le Google Play Store, consultez Emballage et distribution des applications Wear et Fonctionnement de plusieurs APK.
Remarque: Pour bénéficier d’une promotion dans le Google Play Store on Wear (c’est-à-dire dans le Play Store sur montre), votre application doit fonctionner indépendamment d’un téléphone. Le support iOS et Android est requis.
Généralement, le niveau d’API minimum et cible pour une application autonome et pour Wear 2.0 est le niveau 25. Le niveau minimum du SDK ne peut être de 23 que si vous utilisez le même APK pour Wear 1.0 et 2.0 (et avez donc un APK Wear 1.0 intégré).
Remarque : En raison d’un problème de latence affectant la disponibilité d’une application sur Wear 1.x watches, si vous construisez un APK Wear 2.0 autonome et que vous continuerez à avoir un APK Wear 1.0, procédez comme suit:
- Fournir une version autonome de l’APK Wear, et
- Continuer à intégrer une version de l’APK Wear dans votre téléphone APK
Prudence: Si vous publiez une mise à jour de votre APK de téléphone de production existant qui a supprimé un APK d’usure intégré, les utilisateurs de production qui mettent à jour l’APK de téléphone avant d’installer votre APK d’usure autonome perdront leur application d’usure existante et ses données. Si vous publiez une mise à jour de votre APK de téléphone de production existant, continuez à intégrer votre APK de montre dans cet APK de téléphone.
Des autorisations d’exécution sont requises pour les applications autonomes.
Pour plus d’informations sur les demandes réseau et l’accès réseau à bande passante élevée, consultez Accès réseau et synchronisation.
Identifier une application comme autonome
Les applications Wear doivent avoir un élément meta-data
dans le fichier manifeste Android, en tant qu’enfant de l’élément <application>
. Le nom de l’élément meta-data
est com.google.android.wearable.standalone
et la valeur doit être true
ou false
. L’élément indique si votre application watch est une application autonome et ne nécessite donc pas d’application Android côté téléphone pour fonctionner. Si le paramètre de l’élément est true
, votre application peut être disponible dans le Play Store sur les montres couplées à des iPhones, à condition que vos APK actifs dans tous les canaux (par exemple, dans le canal bêta) aient l’élément réglé sur true
. Si tous vos APK (alpha, bêta et de production) qui sont actuellement servis aux utilisateurs n’ont pas le paramètre ci-dessus, votre application sera indisponible lorsqu’un utilisateur effectue une recherche sur une montre jumelée à un iPhone.
Une application de montre peut être considérée comme l’une des suivantes:
- Complètement indépendante d’une application téléphonique
- Semi-indépendante (une application téléphonique n’est pas requise et ne fournirait que des fonctionnalités optionnelles)
- Dépendante d’une application téléphonique
Si une application watch est complètement indépendante ou semi-indépendante, elle est considérée comme faisant partie de la catégorie autonome. Vous devez indiquer cette catégorisation au Google Play Store en définissant la valeur de cet élément meta-data
sur true
:
<application>... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" />...</application>
Étant donné qu’une application autonome (c’est-à-dire une application indépendante ou semi-indépendante) peut être installée par un utilisateur d’iPhone ou un utilisateur d’un téléphone Android dépourvu du Play Store, l’application watch doit être utilisable sans l’application téléphonique.
Si une application montre dépend d’une application téléphone, définissez la valeur de l’élément meta-data
ci-dessus sur false
. Le réglage de l’élément sur false
signifie que l’application watch ne doit être installée que sur une montre couplée à un téléphone doté du Play Store.
Remarque: Même si la valeur est false
, l’application watch peut être installée avant l’installation de l’application téléphone. Par conséquent, si une application watch détecte qu’un téléphone compagnon ne dispose pas d’une application téléphonique nécessaire, l’application watch doit inviter l’utilisateur à installer l’application téléphonique.
Définir une application en tant qu’application Wear
Vous devez vous assurer que la balise <uses-feature>
est définie dans le fichier Manifeste Android de votre application. Il doit indiquer qu’il s’agit d’une application watch
, par exemple android:name="android.hardware.type.watch"
comme suit:
<manifest>... <uses-feature android:name="android.hardware.type.watch" />...</manifest>
Stockage de code et de données partagés
Le code peut être partagé entre une application Wear et une application téléphonique. En option, le code spécifique à un facteur de forme peut être dans un module séparé.
Par exemple, le code commun pour la mise en réseau peut être dans une bibliothèque partagée.
Vous pouvez utiliser des API de stockage Android standard pour stocker des données localement, comme vous le feriez sur un téléphone. Par exemple, vous pouvez utiliser les API SharedPreferences ou la bibliothèque de persistance de la pièce.
Détecter votre application sur un autre appareil
Votre application watch peut détecter si l’application téléphonique correspondante est disponible et vice versa.
L’application de votre téléphone ou de votre montre peut utiliser le CapabilityClient
pour annoncer la présence de l’application sur un appareil couplé. Il peut le faire de manière statique et dynamique. Lorsqu’une application se trouve sur un nœud du réseau Wear d’un utilisateur (c’est-à-dire sur un téléphone, une montre jumelée ou dans le cloud), le CapabilityClient
permet à une autre application de détecter si elle est installée. Pour plus d’informations, voir Fonctionnalités de publicité.
Si l’une de vos applications ne peut pas détecter l’autre, vous pouvez autoriser un utilisateur à ouvrir la liste Play Store sur son appareil distant. Il s’agit d’une solution pour les applications de montre qui nécessitent la présence de leur application de téléphone compagnon pour fonctionner correctement. Une condition préalable est de vérifier la présence du Play Store sur l’appareil distant.
Notez que tous les téléphones ne prennent pas en charge le Play Store (tels que les iPhones, etc.).
Cette section décrit les meilleures pratiques pour ces scénarios:
- Votre application montre autonome a besoin de votre application téléphone
- Votre application téléphone a besoin de votre application montre autonome
Examinez l’exemple qui montre cette fonctionnalité. Pour plus d’informations sur les classes décrites ci-dessous, consultez la référence de l’API Wear. Cette référence contient également des informations sur la classe PhoneDeviceType
, qui contient une méthode getPhoneDeviceType()
qui permet à votre application Wear de vérifier si un téléphone compagnon est un appareil Android ou iOS.
Spécifiez des noms de capacités pour 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 capacité dans le fichier res/values/wear.xml
.
Par exemple, dans votre module mobile, le fichier wear.xml
pourrait inclure les éléments suivants :
Dans votre module wear, le fichier wear.xml
inclurait une valeur différente pour le nom de la capacité, telle que la suivante :
Pour plus d’informations, consultez Annoncer les capacités.
Détection d’application et ouverture d’une URL à partir d’une montre
Votre application watch peut détecter si le téléphone compagnon d’un utilisateur dispose de votre application téléphonique:
- Utilisez le
CapabilityClient
pour vérifier si l’application de votre téléphone est installée sur le téléphone jumelé. Pour plus d’informations, consultez l’exemple. - Si l’application de votre téléphone n’est pas installée sur le téléphone, utilisez la méthode
PhoneDeviceType.getPhoneDeviceType()
pour vérifier le type de téléphone. - Si
PhoneDeviceType.DEVICE_TYPE_ANDROID
est renvoyé, le téléphone est un téléphone Android. AppelezRemoteIntent.startRemoteActivity()
sur l’appareil Wear pour ouvrir l’app Store sur le téléphone. Utilisez l’URI market pour votre application téléphonique (qui peut être différente de l’URI de votre téléphone). Par exemple, utilisez un URI de marché tel que:market://details?id=com.example.android.wearable.wear.finddevices
- Si
PhoneDeviceType.DEVICE_TYPE_IOS
est renvoyé, cela signifie que le téléphone est un téléphone iOS (sans Play Store disponible). Ouvrez l’App Store sur l’iPhone en appelantRemoteIntent.startRemoteActivity()
sur l’appareil Wear. Vous pouvez spécifier l’URL iTunes de votre application, par exemple,. Sur un iPhone, à partir de Wear OS, vous ne pouvez pas déterminer par programme si l’application de votre téléphone est installée. En tant que meilleure pratique, fournissez un mécanisme à l’utilisateur (par exemple, un bouton) pour déclencher manuellement l’ouverture de l’App Store.
Notez qu’en utilisant l’API RemoteIntent
décrite ci-dessus, vous pouvez spécifier que n’importe quelle URL soit ouverte sur le téléphone à partir de la montre, et aucune application téléphonique n’est requise.
Détails pour 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 de retour | Description |
---|---|
DEVICE_TYPE_ANDROID |
Le téléphone compagnon est un appareil Android. |
DEVICE_TYPE_IOS |
Le téléphone compagnon est un appareil iOS. |
DEVICE_TYPE_ERROR_UNKNOWN |
Une erreur s’est produite lors de la détermination du type de téléphone couplé; une autre vérification devrait être effectuée plus tard. |
Détection d’application à partir d’un téléphone Android
Votre téléphone Android peut détecter si les appareils d’usure d’un utilisateur ont votre application watch:
- À l’aide du
NodeClient
, recherchez toutes les montres connectées au téléphone de l’utilisateur. Pour plus d’informations, consultez l’exemple. - À l’aide du
CapabilityClient
, vérifiez laquelle des montres de l’utilisateur a installé votre application. - Si votre application n’est pas installée sur toutes les montres de l’utilisateur (comparez les résultats de l’étape 1 avec les résultats de l’étape 2), autorisez l’utilisateur à ouvrir le Play Store sur les appareils d’usure restants à partir du téléphone via la méthode
RemoteIntent.startRemoteActivity()
. Plus précisément, utilisez l’URI du marché pour l’application Wear (qui peut être différente de l’URI de l’application de votre téléphone). Par exemple, utilisez un URI de marché tel que:market://details?id=com.example.android.wearable.wear.finddevices
Données de localisation pour les montres couplées à des iPhones
Pour les montres couplées à des iPhones, les développeurs doivent utiliser le fournisseur de localisation fusionné (FLP) pour obtenir des données de localisation sur une montre. Voir Détection de l’emplacement lors de l’usure.
Si le téléphone compagnon est disponible, FLP utilise le téléphone compagnon pour les données de localisation.
Obtenir uniquement les données nécessaires
Généralement, lors de l’obtention de données sur Internet, vous ne devez obtenir que les données nécessaires. Sinon, vous risquez d’introduire une latence inutile, une utilisation de la mémoire et une utilisation de la batterie.
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, les étapes suivantes sont recommandées:
- Vérifiez les demandes et les réponses de votre réseau à la recherche de données supplémentaires uniquement pour une application téléphonique
- Réduisez les images volumineuses avant de les envoyer sur un réseau à une montre
Pour les cas où un réseau à bande passante élevée est nécessaire, consultez Accès au réseau à bande passante élevée.
Exemples de code supplémentaires
L’exemple WearVerifyRemoteApp démontre en outre l’utilisation des API couvertes sur cette page.