Applications d’usure autonomes

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

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:

  1. 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.
  2. 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.
  3. Si PhoneDeviceType.DEVICE_TYPE_ANDROID est renvoyé, le téléphone est un téléphone Android. Appelez RemoteIntent.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
  4. 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 appelant RemoteIntent.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:

  1. À l’aide du NodeClient, recherchez toutes les montres connectées au téléphone de l’utilisateur. Pour plus d’informations, consultez l’exemple.
  2. À l’aide du CapabilityClient, vérifiez laquelle des montres de l’utilisateur a installé votre application.
  3. 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.

You might also like

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.