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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);Quelqu'un aurait une piste?
Code CustomObjListener extends LocationListener : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Partager