Bonjour je débute en java, et j'éssaye de récupérer la position gps d'un téléphone sous android.
Mon principale problème est que j'ai besoin de récupérer la variable object (de type JSONObject) dans ma fonction onLocationChanged, mais je n'y parviens pas, voici mon code :
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 // Objet dont j'ai besoin et que j'éssaye aussi de passer dans le LocationListener sans y parvenir JSONObject object = new JSONObject(); object.put("server_id", server_id); object.put("action", "map"); object.put("test", "variable test pour voir si l'objet est bien passe"); LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); // Si on ne peut pas avoir la position instantanément // car le gps doit se lancer, on attend, on enverra la reponse plus tard / On doit creer un thread, il me semble, meme si ca ne me facilite pas les choses car le reste de mon code à besoin de ces données pour continuer. // Je prefererais que ca freeze (avec à la limite une durée maximale, si jamais le gps est pas capable de donné quoi que ce soit au bout d'une minute), cette fonction est utilisé par un service cela ne se verrais pas if(location == null) { // Sinon on fera une requete spéciale plus tard lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() { @Override public void onLocationChanged(Location location) { Log.d("Bipack", "Bipack - GEOLOCATION CHANGE !"); Log.d("Bipack", "Bipack - OBJECT TEST: "+ object.getString("test")); object.put("lat", location.getLatitude()); object.put("lng", location.getLongitude()); } }); return; } object.put("lat", location.getLatitude()); object.put("lng", location.getLongitude());
j'ai tenté ceci, sans succès :
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 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener(object) { private JSONObject object; // j'ai éssaye ceci pour passer mon objet en parametre public void LocationListener(JSONObject object) { this.object = object; } @Override public void onLocationChanged(Location location) { Log.d("Bipack", "Bipack - GEOLOCATION CHANGE !"); Log.d("Bipack", "Bipack - OBJECT TEST: "+ object.getString("test")); object.put("lat", location.getLatitude()); object.put("lng", location.getLongitude()); } });
Merci d'avance pour vos réponses,
Sinon, java veux m'obliger à rajouter dans la fonction new Internationaliste(), ceci, sinon il me met des erreurs (mais je ne souhaite rien mettre dans ces fonction, ça alourdi mon code, pourquoi me met-il ça ?
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 @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub }
Merci d'avance pour vos réponses ! =D
Pierre.
Partager