GPS: configurer la fréquence d'update (requestLocationUpdates)
Bonjour,
Je cherche à connaitre assez précisément la distance parcouru par un utilisateur.
J'utilise actuellement la méthode requestLocationUpdates() pour récupérer la position de mon utilisateur, mais je n'arrive pas à régler la fréquence à laquelle le GPS me renvoit les données...
Je l'ai réglé à 20 secondes, mais je reçoit des données toutes les secondes... Ca va me poser 2 problèmes:
-La batterie ne va pas tenir longtemps...
-La précision du calcul de distance s'en voit altéré, parce que les coordonnées bouge un peu avec le temps même si je ne bouge pas (ça ne me semble pas anormal avec une Accuracy de 50m en moyenne)
Voici mon code:
Code:
1 2 3 4 5
|
long requestDelay = 20000;
objGPS = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
objListener = new CustomObjListener(this);
objGPS.requestLocationUpdates(LocationManager.GPS_PROVIDER, requestDelay, 0, objListener); |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
public CustomObjListener(GeoLocationContext context){
ctx = context;
}
@Override
public void onLocationChanged(Location location) {
if(ctx != null){
ctx.updateDatas(location); //Environ toutes les secondes O_o'
}
}
@Override
public void onProviderDisabled(String arg0) {
if(ctx != null){
ctx.providerState(0);
}
}
@Override
public void onProviderEnabled(String arg0) {
if(ctx != null){
ctx.providerState(1);
}
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
if(ctx != null){
ctx.statusChange(provider, status);
}
} |
Quelqu'un aurait une piste?