2011-01-04 3 views
3

Je veux obtenir mes coordonnées toutes les minutes, même si un utilisateur ne bouge pas. Donc, je l'ai utilisé requestLocationUpdates avec les paramètres suivants:Comment obtenir des coordonnées GPS chaque minute dans Android?

locMgr.requestLocationUpdates(
        LocationManager.GPS_PROVIDER, 
        60000,  // minTime in ms 
        0,  // minDistance in meters 
        PosljiLokacijo.this); 

Mais quand je teste sur mon HTC Hero (Android 2.1) et je ne suis pas en mouvement, OnLocationChanged() est jamais appelé. Si je change minDistance à 1, alors j'obtiens quelques mises à jour au début mais après cela, elles viennent dans des intervalles très irréguliers.

Comment devrais-je choisir ces 2 paramètres (minTime et minDistance) pour recevoir des coordonnées toutes les minutes?

Répondre

1

Je ne pense pas que "minTime" ou "minDistance" aidera dans ce cas, sauf si: enregistrer le dernier emplacement dans les variables et les sortir toutes les minutes. Laissez le gestionnaire de position écraser ces variables, donc après une minute, le changement d'emplacement devient visible. De cette façon, il n'est pas nécessaire d'attendre une mise à jour car vos variables tiennent toujours la position réelle.

Vous pouvez également récupérer l'emplacement à partir de locationManager et demander à nouveau l'emplacement après une minute (ou ce que vous voulez que votre intervalle soit) sans utiliser requestLocationUpdates.

par exemple. jetez un oeil à l'Timer pour définir un appel répété à votre méthode qui obtient l'emplacement:
http://developer.android.com/reference/java/util/Timer.html

De cette façon, vous devriez également économiser la batterie que le système ne sera pas à la recherche des mises à jour tout le temps.

1

Selon la documentation:

mintime 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. La seule façon que je vois de faire ce que vous voulez serait de mettre minTime à 0 et de jeter les valeurs qui sont trop fréquentes. Vous n'avez toujours pas la garantie d'obtenir des mises à jour aussi souvent que vous le souhaitez, et soyez prêt à ce que votre application soit également un tueur de batterie.

+1

Batterie ne sera pas un problème, parce que cette application sera utilisée dans une voiture et branché sur elle. – DixieFlatline

+1

La batterie est toujours un problème :) – nifo

+0

Oui. Le GPS (en particulier la navigation) peut utiliser tellement de puissance dans certains appareils qu'il ne reste presque rien pour recharger la batterie (à partir de certains chargeurs de voiture)! –

Questions connexes