
Envoyé par
nicroman
getLastKnownLocation peut renvoyer "null" (aucune location récente).
Donc le "location.getLatitude()" va crasher avec un NullPointerException.
De toute manière il est illusoire de penser pouvoir en "un clic" récupérer une position GPS.
Il y avait un article chez google qui traitait justement de comment fonctionne le LocationManager... mais grosso modo, même si dans les settings "GPS" est activé, le capteur GPS n'est pas réellement actif, il est juste rendu disponible pour les applications. Il ne sera activé que si une application "active" (voir la définition de ce terme dans la durée de vie des applications) est en train d'écouter la localisation GPS. (avec un listener donc). Ceci pour éviter le drain de batterie inhérent à ce capteur.
Et comme un fix GPS peut prendre un certain temps (de 2s à 30s), une activité ayant besoin d'une position va demander à écouter les infos GPS dès son activation (gestion du listener dans onResume/onPause)...
Il n'y a d'ailleurs (à juste escient) aucune fonction bloquante de récupération de la position actuelle.
C'est pourquoi en général, il n'y a pas besoin de "clic"... l'activité tournant, elle peut afficher la position en temps réel, sans une quelconque action de l'utilisateur.
Partager