2010-11-22 8 views
2

J'ai utilisé ce codeAndroid: Comment obtenir l'emplacement le plus précis du GPS

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
       500, 50, this); 

pour obtenir mon emplacement en utilisant le GPS. D'après ce que j'ai compris, ce code met à jour le GPS toutes les 500millisecondes jusqu'à ce que la précision soit d'environ 50ms. Droite? Maintenant, comment puis-je savoir quand il a atteint cette précision? Alors que je peux envoyer l'emplacement le plus précis dans un message texte.

Répondre

4

500 est l'intervalle minimum pour les notifications et n'est qu'un indice.

Comme on le voit dans le javadocs:

l'intervalle de temps minimum pour les notifications, en millisecondes. Ce champ est uniquement utilisé comme indication pour économiser l'énergie, et le temps réel entre les mises à jour d'emplacement peut être supérieur ou inférieur à cette valeur.

Ainsi, vous pouvez (et) voir les variations de cet intervalle (LocationListener ne sera pas toujours appelé avec un intervalle de 500ms exact)

50 est le minDistance et selon les docs: l'intervalle de distance minimale pour les notifications, en mètres. Cela n'affecte donc pas la précision, mais seulement le déclencheur des mises à jour de localisation. (Si vous déplacez minDistance, un déclencheur se produit). En tant que tel, cela n'influence pas la précision.

Cependant, votre LocationListener retournera un android.location.Location, et qui expose une précision (la précision de la correction en mètres)

+0

Donc, vous dites qu'il ne marche pas vraiment importe combien de fois il met à jour? –

+0

Plus l'intervalle est court, plus vous aurez de mises à jour. Sur ces mises à jour de localisation, vous pouvez choisir la plus précise. Voir http://developer.android.com/guide/topics/location/obtaining-user-location.html pour quelques cas d'utilisation courants. Je vous conseille également de tester ceci sur le terrain, car la simulation des mises à jour de localisation GPS à travers l'émulateur est limitée et ne reflète pas toujours des situations réelles. Tenez également compte de la durée de vie de la batterie, car le fait d'avoir constamment activé le GPS pendant que vous demandez des mises à jour de localisation peut drainer la batterie. – ddewaele

+0

ok merci. donc une question de plus :) Je veux obtenir l'emplacement une fois, et l'envoyer dans un SMS. Dois-je faire des changements? Comment puis-je m'assurer que le SMS est envoyé seulement après l'obtention du lieu? –

Questions connexes