Bonjour,
Je dois réaliser une application permettant de sauvegarder la localisation à un moment donnée. (Via à un top utilisateur)
Cependant, j'ai quelque difficulté avec la gestion du LocationManager afin d'avoir des coordonnées viable au moment voulu.
Actuellement, j'ai une classe singleton nommé LocationService appelé par chaque page ayant besoin de localisation (et l'initialise si besoin):
Il se trouve qu'à l'initialisation de ce singleton, je réalisé l’opération suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Singleton public class LocationService { @Inject private LocationManager locationManager; // reste de la classe... }
Or il se trouve que je ne passe jamais dans les onLocationChanged. Je me demande donc si il y a une erreur dans ma gestion où si je n'ai simple pas de coordonnées disponible sur le téléphone malgré l'activation du GPS, du wifi et du réseau opérateur.
Code : 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public void init() { LOG.debug(); try { locationManager.removeUpdates(this.gpsListener); locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER,0, 0, this.gpsListener, context.getMainLooper()); locationManager.removeUpdates(this.networkListener); locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, this.networkListener, context.getMainLooper()); } catch (Exception e) { LOG.warning("problem with a provider", e); } } private abstract static class BaseLocationListener implements LocationListener { private Location last; public Location getLast() { return last; } public void setLast(Location last) { this.last = last; } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } @Override public void onProviderEnabled(String provider) { } @Override public void onProviderDisabled(String provider) { } } private final BaseLocationListener gpsListener = new BaseLocationListener() { @Override public void onLocationChanged(Location location) { setLast(location); LOG.info("Updated GPS Location", location); } }; private final BaseLocationListener networkListener = new BaseLocationListener() { @Override public void onLocationChanged(Location location) { setLast(location); LOG.info("Updated Network Location", location); } };
A noté que dans le logcat connecté au mobile en question j'ai des traces de ce types :
Que je ne sais pas décrypté et dont je ne connais pas l'origine exacte. Ce qui m'embête un peu.03-04 16:05:08.328: D/(1992): [HYPOS] NOMOVE Time 37385, PowerMode 2, GPSWeakSignal 44, GPSFixTime 0, IsPedestrian 0, DOE 0
Si vous avez une idée sur la question, une remarque ou qu'il y a quelque chose que vous semble bizarre dans ce que je dis... Merci d'avance pour l'aide !
Cordialement,
Patrick Kolodziejczyk.
Partager