• 30 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 13/01/2020

Installez un environnement pour Android Wear

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction aux applications de montre connectées

Un des premiers objets connectés à avoir vu le jour, en même temps que les télévisions, sont les montres connectés. Ces objets ont l’avantage d’être vendus à grande échelle, de ne pas être trop chers, d’avoir de nombreux constructeurs différents, et d’avoir une interface graphique, ainsi que de nombreux capteurs. Ce sont donc des objets idéals pour s'entraîner à programmer des applications embarquées.

Le second avantage de ces objets, c’est de ne pas avoir besoin de gérer la connectivité réseau : elle est assurée par le téléphone mobile à laquelle la montre est appairée. Il est toutefois possible, pour certains modèles, d’avoir accès au Wifi, par exemple.

Les usages sont multiples :

  • relais des notifications depuis le téléphone ;

  • monitoring sportif (cardio, température, etc.) ;

  • voyage : présentation des titres de transport.

Nous allons travailler sur un cas d’utilisation lié au voyage et au tourisme. Dans cette partie, nous allons apprendre l’essentiel pour réaliser une application sur la montre qui permettra de se géolocaliser et d’afficher le nom du monument qui est à proximité de notre position.

Le système d’exploitation de la montre est Android Wear. Il s’agit du même système que sur un téléphone mais avec des modifications qui permettent d’être encore plus agressif pour l’économie d’énergie. En fait les deux systèmes partagent beaucoup d’éléments, par exemple le format des applications, la méthode de déploiement, etc. Cependant, pour l’interface utilisateur, il y a de nombreuses différences afin d’être capable d’utiliser des applications sur un écran très restreint.

Depuis la sortie de Wear 2.0 début 2017, le système peut accéder au Play Store et donc installer des applications standalone, sans application appairée sur le téléphone.

Lorsqu’on génère un projet sous Android Studio, on peut choisir de générer un projet double, c’est-à-dire contenant deux applications : une pour un téléphone et une pour une montre connectée. Dans ce cas, il faut choisir niveaux de l’API minimum pour ces deux applications, ce qui ne requiert pas qu’ils soient alignés.

Dans l'interface de programmation, on retrouve donc deux sous-projets :

  • mobile : c'est l'application pour le téléphone ;

  • wear : c'est l'application pour la montre.

Chaque sous-projet possède ses propres ressources, c'est-à-dire son code Java pour ses activités, son Manifest, ses propres gabarits, etc.

Pour exécuter chaque projet, on choisit l'application à déployer et on lance l'application qui sera automatiquement poussée sur le téléphone ou la montre.

Il faut ensuite préparer un environnement d'exécution pour nos deux applications. Pour se faire plusieurs solutions sont possibles :

  • Solution du riche : un téléphone et une montre connectée :soleil: ;

  • Solution normale : un téléphone et l'émulateur de montre connectée ;

  • Solution du pauvre : un émulateur de téléphone et un émulateur de montre connectée.

La configuration "normale" est la plus standard et fonctionne toujours parfaitement. Il faut un téléphone physique sous Android et dont les Google Play Services sont à jour (ce qui peut ne pas être le cas avec un émulateur), connecté en USB à votre ordinateur. On lance par ailleurs un émulateur Wear Intel x86. Ensuite, il est nécessaire de faire une redirection de port sur le téléphone, à l'aide de la commande adb. Pour ce faire, listez les appareils connectés :

$ adb devices
List of devices attached
emulator-5554 device
ZY222VFXXX device

Dans cet exemple, le nom du téléphone physique est ZY222VFXXX, et l'émulateur de montre est emulator-5554. Puis saisissez la commande :

adb -s ZY222VFXXX -d forward tcp:5601 tcp:5601

Cela a pour effet de rediriger le port 5601 du téléphone vers le port 5601 de l'ordinateur ou la montre pourra se connecter.

Pour réaliser l'appairage de la montre et du téléphone, installez l'application Wear, par exemple en la téléchargeant depuis apkmirror, on bien depuis le Play Store. Suivez la procédure d'appairage de l'émulateur en utilisant le menu en haut à droite. Si tout se passe bien, vous devez vous retrouver dans la situation suivante :

Maintenant que l'environnement d'exécution est prêt, on va pouvoir installer nos applications sur le téléphone et la montre.

L’installation de nos deux applications, la “phone app” et la “wear app” suivait un processus unique du temps de Wear 1.0 : la phone app contenant l’apk de la wear app et était tout d’abord installée depuis le Play store sur le téléphone. Puis, le téléphone poussait la wear app sur la montre connectée.

Depuis Wear 2.0, ce fonctionnement reste possible, mais on peut désormais réaliser des wear app qui n’ont pas d’application associée sur le téléphone. Dans ce cas, la wear app est directement installée sur la montre connectée. Cela nécessite d’avoir un accès au Play Store sur la montre connectée, ce qui est possible pour Wear 2.0 (API 26 et plus). C’est donc pour cette raison que l’application Android Wear demande si l’on souhaite transférer le compte Google de l’utilisateur sur la montre. Si l’on accepte, alors les credentials de l’utilisateur sont renseignés sur la montre, ce qui permet de télécharger directement depuis le Play store une application de montre.

Comme toutes les montres ne sont pas encore sous Wear 2.0 (loin de là !), le déploiement via le téléphone intermédiaire reste toujours possible. Pour que cela fonctionne, il faut préciser dans le fichier de build de gradle de la phone app, une dépendance :

dependencies {
...
wearApp project(':wear')
}

Ensuite, cette dépendance est utilisée pour construire la release de l’apk finale (Build > Generate signed apk). On peut alors vérifier que l’apk de la phone app contient bien l’apk de la wear app.

Cependant, lorsque l’on développe depuis Android Studio, on ne déploie jamais la wear app au travers de la phone app du téléphone. Autrement dit, on pousse depuis Android studio la wear app directement sur la montre (et de même pour la phone app). En poussant, nos deux applications "hello world", on obtient les écrans suivants :

 Pour plus d'informations sur la mise en place d'un environnement de développement, vous pouvez vous référer à la documentation officielle sur ce point.

Exemple de certificat de réussite
Exemple de certificat de réussite