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):

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...
}
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
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);
		}
	};
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.

A noté que dans le logcat connecté au mobile en question j'ai des traces de ce types :

03-04 16:05:08.328: D/(1992): [HYPOS] NOMOVE Time 37385, PowerMode 2, GPSWeakSignal 44, GPSFixTime 0, IsPedestrian 0, DOE 0
Que je ne sais pas décrypté et dont je ne connais pas l'origine exacte. Ce qui m'embête un peu.

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.