Interaction entre un téléphone Android et une montre Android via les notifications

android_logo_520

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 :

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setContentTitle("Humeur du jour");
mBuilder.setContentText("Avez vous passez une bonne journée ?");
mBuilder.setTicker("Humeur du jour !");
mBuilder.setSmallIcon(R.drawable.ic_launcher);
//create result Intent
Intent resultIntent = new Intent(this, NotificationView.class);
resultIntent.setAction("Detail");
PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);
// create notification
Notification notif = mBuilder.build();
NotificationManagerCompat mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(notificationID, notif);

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.

Notification simple reçue sur le téléphone

Notification simple reçue sur le téléphone

Notification reçue sur la montre.

Notification reçue sur la montre.

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.

Notification avec deux actions sur la montre

Notification avec deux actions sur la montre

 

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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.