Avant toute chose, il faut s’assurer que la connexion entre la montre et le téléphone soit opérationnelle. Vous pouvez lire l’article Synchronisation entre un téléphone Android et une Android Wear.
Le moyen le plus simple d'interagir entre le téléphone et la montre Android est d'envoyer des notifications au sein même de l'application. Ces notifications sont celles que l'on reçoit classiquement sur notre téléphone (lorsque l'on a un nouveau message, un rendez-vous qui va bientôt commencer, ... ). Ainsi lorsque l'on reçoit une notification sur le téléphone, elle apparaîtra sur la montre.
Il existe deux types de notifications : les notifications simples et les notifications avec messages et actions personnalisables.
Les notifications simples
Les notifications simples sont les notifications qui ne contiennent que du texte et qui lorsque l’on clique dessus ouvre l’application sur le téléphone.
Le code suivant permet de créer une notification et de l’afficher :
L'objet NotificationCompat permet de créer des notifications quelque soit la version de l'appareil à l'aide de la bibliothèque support-v4.
Lors de la construction de la notification, on précise un message d'accroche (setTicker ) qui apparaîtra en premier, un Titre ( setContentTitle), un résumé (setContentText), une icône qui est généralement la même que celle de l'application (setSmallIcon) et un pending Intent (setContentIntent) qui permettra de lancer une nouvelle vue lorsque l'utilisateur cliquera sur la notification ou sur le bouton "Open in phone" présent sur la montre.
Une fois la notification construite, on la diffuse grâce au NotificationManagerCompat qui permet de lancer et gérer les notifications.
Ainsi lorsque ce code est appelé, la notification est diffusée sur les deux appareils.
Les notifications avec des actions
Il est possible dans les notifications d'ajouter des actions afin de donner une réponse rapide sans avoir à ouvrir l'application. Ces notifications sont compatibles avec les montres Android.
L’ajout de bouton se fait à l’aide de la fonction addAction(…) lors de la construction de notifications et comprend trois paramètres :
- L’icône du bouton
- Le texte du bouton
- La nouvelle vue qui sera lancée lors du clic
Le code suivant permet d’ajouter un bouton à la notification pour que l’utilisateur puisse répondre par oui ou par non et d’afficher la réponse de l’utilisateur dans une nouvelle vue.
//Yes intent resultIntent.setAction("YES"); PendingIntent pendingIntentYes = PendingIntent.getActivity(this, 1, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.addAction(R.drawable.good, "Oui", pendingIntentYes); //No intent resultIntent.setAction("NO"); PendingIntent pendingIntentNo = PendingIntent.getActivity(this, 3, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.addAction(R.drawable.bad, "Non", pendingIntentNo);
Ainsi sur la montre, nous obtenons le résultat suivant en glissant les actions de droite à gauche.
Conclusion
L'envoi de notification est le moyen le plus simple de faire interagir un téléphone Android avec une montre Android sans développer une application dédiée à la montre.
Cependant, avec les notifications, il n'est pas (ou peu ) possible de changer le design des notifications. Nous verrons donc dans un prochain article comment créer une application spéciale Wear et la faire interagir avec le téléphone grâce au GoogleApiClient.