2011-03-16 1 views
1

Hé les gars je veux obtenir la latitude et la longitude de l'emplacement des utilisateurs. J'ai essayé le site des développeurs et le débordement de pile, il y a des tas d'exemples ciblés sur l'utilisateur en mouvement qui utilisent quelque chose comme: - onLocationChanged() Je n'ai pas besoin de mises à jour de l'emplacement, l'utilisateur l'ouvrira juste une minute ou deux donc je dois trouver l'emplacement le démarrage de l'application et si l'utilisateur n'a jamais utilisé une application de géolocalisation avant donc je voudrais aussi une alternative pour LocationManager.getLastKnownLocation()Comment obtenir l'emplacement actuel sur android

Mon code est le suivant: -

LocationManager lm = (LocationManager) 
     getSystemService(Context.LOCATION_SERVICE); 
     // connect to the GPS location service 
     Location loc = lm.getLastKnownLocation(lm.NETWORK_PROVIDER); 
     Toast.makeText(currentLocation.this, "Latitude -> "+Double.toString(loc.getLatitude()) 
       +" Longitude is -> "+Double.toString(loc.getLongitude()), Toast.LENGTH_LONG).show(); 

et fonctionne bien. Mais j'ai peur que le getLastKnownLocation puisse retourner null lorsqu'il est utilisé pour la première fois.

Merci

+1

Vous avez posé 9 questions et n'avez jamais accepté de réponse. Acceptez les réponses correctes à vos questions précédentes et plus d'utilisateurs prêteront attention à vos nouvelles questions. –

Répondre

3

Inscrivez-vous à l'emplacement et une fois que vous recevez la première mise à jour, vous pouvez annuler l'enregistrement des mises à jour futures. En d'autres termes, créez un LocationListener et enregistrez-le avec la méthode requestLocationUpdates de votre LocationManager. Dans la méthode onLocationChanged de votre LocationListener, appelez la méthode removeUpdates sur votre LocationManager, avec this comme paramètre.

Cela peut prendre un certain temps avant d'obtenir un nouvel emplacement, mais à l'exception de getLastKnownLocation, il n'y a pas vraiment d'alternative.

+0

Merci pour la réponse. Mais requestLocationUpdates a 4 paramètres, le troisième étant la distance minimum qu'il parcourt pour que le rappel se produise et dats ce que je suis confus dois-je tomber dans null là-bas? puisque l'utilisateur ne bouge pas ... – abhishek

+0

En passant 0 comme minDistance, vous vous assurez que la méthode est appelée chaque fois qu'un nouvel emplacement est reçu. –

+0

ya qui a fait le tour merci – abhishek

Questions connexes