Android : L'interaction avec les appareils

Gérer la localisation

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Découvrez comment vous abonner à la localisation d'un appareil Android. Puis, apprenez à gérer à la volée les permissions indispensables.
08:07

Transcription

Dans cette vidéo, je vais vous montrer comment notre application peut s'abonner à la localisation du téléphone. Pour cela, j'ai créé un nouveau module que j'ai appelé « localisation ». Dans « activity_main.xml », j'ai créé deux boutons : « Démarrer » et « Arrêter » la localisation ainsi qu'un « TextView ». Côté Activité, j'ai récupéré mes composants graphiques et je me suis abonné aux clics des boutons. Et j'ai créé une méthode pour chaque bouton. Pour travailler avec la localisation, nous avons besoin d'ajouter une permission donc nous allons dans le fichier « android manifest » et nous allons ajouter les permissions nécessaires. La première est la permission « Access Coarse location » C'est la permission qui va prendre la localisation à partir du réseau, du Wifi ou de la 3G. C'est une position pas très précise. La deuxième, à partir de la puce GPS « Access Fine Location » La localisation précise du GPS englobe la première, donc si je mets la deuxième, je n'ai pas besoin d'utiliser la première. Pour rappel, certaines permissions à partir de MARSHMALLOW, sont à générer dynamiquement c'est-à-dire qu'il va falloir, en cours d'utilisation de l'application, faire la demande de la permission, elle ne l'est pas pour « Acces Coare Location » donc ici dans le cas présent, nous allons utiliser « Access File location » donc nous allons faire la demande de permission dynamiquement. Nous allons utiliser le « context compat ». Nous allons donc faire une demande vérifiant si nous avons, oui ou non, la localisation. Ici, nous demandons la permission « Access Fine Location », ici j'ai la permission. J'ai la permission, je peux donc démarrer ma localisation. Sinon, si je ne l'ai pas, je vais pouvoir en faire la demande. Pour faire la demande de permission, je vais aussi utiliser la « compat library » sauf que cette fois, ce sera « activity compat » car nous aurons besoin d'un lien vers l'activité, c'est-à-dire que le contexte que je passe doit être un contexte d'activité, ça tombe bien, je suis dans une activité, où je demande « l'Access Fine Location » et je lui donne un « request code ». Je vais créer ce « request code » « Alt + entrée » « create constant » et je vais lui donner une valeur au hasard. Une fois que j'ai demandé la permission, l'utilisateur verra, par dessus son application, une petite fenêtre lui réclamant la permission de la localisation. Il va pouvoir cocher Oui ou Non. Pour obtenir la réponse, on va passer dans une méthode du cycle de vie de l'activité qui est « onRequestPermissionResult ». Donc, une fois que l'utilisateur aura coché Oui ou non, on reviendra dans « onRequestPermissionResult ». Ici, je vais pouvoir me servir de mon « request code » pour savoir dans quel contexte j'ai demandé la permission. Je vais donc maintenant pouvoir revérifier si j'ai la permission. Je refais exactement le même code que précédemment. J'ai la permission, je démarre la localisation. Sinon, l'utilisateur a refusé de me donner la permission, je vais ici lui indiquer un « toast » voilà, j'ai donc fait mes demandes de permission. Je vais donc maintenant pouvoir démarrer la localisation. Pour ça, je vais simplement m'abonner à un « provider » donc un « provider » c'est quoi ? C'est le réseau ou la puce GPS. Je vais donc avoir besoin du « locationManager » qui est l'outil qui permet de s'abonner au « provider ». Je le récupère dans le « onCreate » et quand je démarre la localisation, je m'abonne. Avant de s'abonner, il faut tester si ça existe. Tout simplement parce que certains appareils n'ont pas de puce GPS. Donc il faut tester si le « provider » existe et s'il existe, je m'y abonne. Ici, je m'abonne donc au « provider » réseau, ici au « provider » du GPS. Ici, j'indique donc sur le 5000 que je veux être prévenu toutes les cinq secondes. C'est-à-dire que même si ma puce GPS m'envoie des messages toutes les deux/trois secondes, cela ne m'intéresse pas, je ne veux être au courant de ma localisation uniquement toutes les cinq secondes minimum. Ici, j'indique avec une distance de zéro mètre d'écart, c'est-à-dire que si ici j'indique 500 mètres, je préviens que je ne veux être prévenu de la nouvelle localisation que minimum toutes les cinq secondes et si je me suis déplacé de 500 mètres. En l'occurrence, on va mettre zéro. Le troisième argument est le « call back ». Ici, l' « Alt + entrée » ne fonctionne pas il ne me propose pas d'implémenter le « LocationListener », il va donc falloir le faire à la main. Le fait d'avoir implémenté « LocationListerner», je fais « Alt + entrée », « implementMethod » cela me génère les quatre méthodes qui vont me permettre d'être au courant de la localisation. La première me donne les nouvelles locations. « onStatusChange » me donne l'état, est-ce que c'est activé, désactivé « onProvider » m'indique qu'un « provider » a été activé et, ici, qu'un « provider » a été désactivé. Je vais donc créer un « toast » et je vais indiquer que ma localisation a changé en l'indiquant dans mon « TextView » histoire de voir le texte défiler. Comme d'habitude, je rajoute une ligne plus l'ancien contenu du « TextView ». Alors, ici, c'est une sécurité que met le système pour être sûr que vous avez bien demandé la permission. Il m'indique que je n'ai pas vérifié que j'avais bien la permission. Je vais donc le faire. Il m'a ajouté plus ou moins ce qu'on a fait tout à l'heure. Pour simplifier et éviter de le faire deux fois, je vais reprendre ce morceau de code-là et, juste avant, je vais faire un « return ». Comme ça, je n'ai plus le message d'erreur et j'évite de le faire deux fois. Sinon il faut que je le fasse aussi pour la demande de GPS. Voilà pour démarrer la localisation. Si je m'abonne à une localisation, il faut également que je me désabonne. Donc « LocationManager », « removeUpdate » de « this », il ne me reste plus qu'à tester. Je lance, je demande la localisation, j'ai bien la fenêtre qui s'affiche. Si je refuse, j'ai mon « toast » qui m'indique qu'il faut que j'accepte. Je recommence, il me repropose le fenêtre, je fais Autoriser, c'est activé. Je vais appuyer sur les trois petits points. Ces points vont m'afficher cette fenêtre. A partir de là, je vais pouvoir commencer à envoyer mes données. Ici, dans la partie « Location », je peux simuler la puce GPS. On voit que, malgré que j'appuie plein de fois, il n'envoie que toutes les cinq secondes. Si je change, même chose. Il attend pour m'envoyer au moins toutes les cinq secondes. Ici, on peut voir que j'ai une petite icône qui m'indique que la localisation est activée. Si je passe mon activité en arrière-plan, comme je n'ai pas arrêté l'abonnement, je suis toujours lié. Dans les recommandations faites par Google, plutôt que de faire un bouton « Démarrer » et « Arrêter », il vaut mieux démarrer la localisation « doneStart » et l'arrêter « doneStop» ce que nous permet, si une activité passe en arrière-plan, elle arrête la localisation. C'est juste pour optimiser la batterie. Voilà, vous savez maintenant comment vous abonner à la location de votre téléphone.

Android : L'interaction avec les appareils

Exploitez les outils mis à disposition par le kit de développement Android. Améliorez l’expérience utilisateur de vos applications​ mobiles​ avec les composants et les animations.

1h58 (23 vidéos)
Aucun commentaire n´est disponible actuellement

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !