Google Assistant : Actions SDK – Permissions et géolocalisation

Dans le précédent article Google Home : Tester et publier son application, nous avons vu comment publier une application. Nous nous sommes contentés jusque là de ne développer que des applications simples. Nous allons aller un peu plus loin dans les prochains articles. Et nous allons commencer par utiliser la position de l’appareil.

Le projet que nous allons développer

Pour cet article, nous partirons d’une application déjà développée. Nous partirons du premier commit de l’application.

Il s’agit d’une application qui donne les horaires des 5 prières du jour pour la ville de Paris. La manière dont les horaires sont calculés importe peu (il s’agit de calcul astronomiques de la position du Soleil, ainsi que de la prise en compte du pays, car les manières de calculer les horaires peuvent changer d’un pays à l’autre). La seule chose importante est de voir que l’application donne les horaires de la ville de Paris, quelle que soit la position effective de l’utilisateur.

En effet, à la ligne 12 du fichier functions/index.js, on voit que coordonnées GPS ont été ajoutées en dur :

Notre but va donc être de faire en sorte que l’application nous renvoie les horaires de prière en fonction du lieu où se trouve l’appareil.

Permissions

Demande de permission

Sur le même modèle que lorsqu’on développe sur Android, pour accéder à la position de l’appareil de l’utilisateur, il faut lui demander son autorisation. Nous allons donc renommer la méthode mainIntent en permissionIntent (car elle sera appelée une fois que la permission aura été accordée), et développer une méthode mainIntent qui va demander la localisation de l’utilisateur de la façon suivante :

La mention To calculate salat times (pour calculer les horaires de prière), n’est ici que pour indiquer à l’utilisateur la raison pour laquelle on lui demande sa position.

Mapping de la réponse à la demande de permission

Une fois que l’on a obtenu la réponse de l’utilisateur, il va falloir indiquer à l’application que l’on souhaite exécuter permssionIntent. Pour se faire, nous allons ajouter un mapping sur l’Intent ActionsSdkApp.StandardIntents.PERMISSION dans le mapping à la fin du fichier :

Ainsi, lorsque l’on aura la réponse de l’utilisateur, ce sera la méthode permissionIntent qui sera exécutée.

Prise en compte de la réponse de l’utilisateur

L’étape suivante va être de savoir si l’utilisateur nous a donné ou non la permission d’accéder à la position de son appareil. Cette information s’obtient à l’aide de la méthode ActionsSdkApp.isPermissionGranted().

Récupération de la position de l’appareil

Enfin, la dernière étape va être de récupérer la position de l’appareil, à l’aide de la méthode ActionsSdkApp.getDeviceLocation().coordinates :

Conclusion

Cet article assez court correspondra au format des prochains articles, à savoir un article pour chaque fonctionnalité spécifique de Google Home.

Twitter
Vous avez aimé cet article ? N’hésitez pas à me suivre sur Twitter pour être informé des prochains.
Développeur Android freelance depuis Avril 2016, je partage sur mon blog aussi bien que dans des meetups.

Laisser un commentaire

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