IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème avec LocationListener


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Développeur JEE & Android
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur JEE & Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Par défaut Problème avec LocationListener
    Bonjour !

    Je suis en train de développer une appli utilisant la géolocalisation, afin d'afficher des points d’intérêts à proximité de l'utilisateur.
    J'ai fais la partie point d'intérêt, affichage sur la carte, boutons de zoom (), passage map / satellite... En gros, il ne me manque plus que la géoloc !

    Malheureusement, je n'arrive pas à m'en sortir avec le LocationListener... J'ai tenté pas mal de tuto, mais soit ils ne sont pas très clairs, soit ils ne fonctionnent pas

    J'ai ma classe principale, je créé une classe qui implémente LocationListener.
    - Pour onLocationChanged(Location location) : je récupère latitude et longitude avec les getters * 1E6, puis je set un new GeoPoint avec ces infos.

    - Pour onProviderDisabled et onProviderEnabled : juste un petit Toast pour le moment

    - Pour onStatusChanged : rien pour le moment


    Dans ma chronologie, je veux que la mapView soit centrée sur la dernière position connue, pendant que le LocationListener fait le fix, puis passe les nouvelles coordonnées à mon mapController.

    Je sais que mon problème est un peu bête, mais je n'arrive pas à suivre cette chronologie...

    Un peu d'aide ? Un bon tuto ?
    Merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Voici le flow que tu cherches :

    1) getLastKnownLocation(String provider)
    2) Si non nul -> créer le point et centrer la map
    3) requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)
    4) Dès que onLocationChanged(Location location) est appelé : removeUpdates(LocationListener listener) pour arrêter la recherche, créer le point, centrer la map.


    http://developer.android.com/guide/t...trategies.html

  3. #3
    Membre averti
    Profil pro
    Développeur JEE & Android
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur JEE & Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Par défaut
    Merci de ton aide.

    En fait, j'ai un soucis avec mon locationProvider.
    Voici un extrait de 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
    29
    30
    31
    32
    33
    34
    35
    private LocationManager locationManager;
    	private LocationListener locationListener;
    	private LocationProvider locationProvider;
    	private Location actualLocation, lastLocation;
     
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		mapView = (MapView) findViewById(R.id.mapView);
    		niceGP = new GeoPoint(43699651, 7227173);
    		perpignanGP = new GeoPoint(42698586, 2898559);
     
    		// essai de localisation
    		// http://developer.android.com/guide/topics/location/strategies.html
    		locationManager = (LocationManager) this
    				.getSystemService(Context.LOCATION_SERVICE);
    		locationListener = new LocationListener() {
     
    			public void onStatusChanged(String provider, int status,
    					Bundle extras) {
    			}
     
    			public void onProviderEnabled(String provider) {
    			}
     
    			public void onProviderDisabled(String provider) {
    			}
     
    			public void onLocationChanged(Location location) {
    			}
    		};
    		locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
    				0, locationListener);
    		locationProvider = LocationManager.GPS_PROVIDER;
    Eclipse me dit, concernant cette dernière ligne :

    Type mismatch: cannot convert from String to LocationProvider
    J'aimerais mettre tout ce qui concerne l'acquisition du GPS dans une autre classe, et l'appeller uniquement au besoin...

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 46
    Par défaut
    Bonjour,

    Je te conseille ces cours et tutoriels pour apprendre Android que j'ai pour ma part trouvé très clair.

    En espérant que ça puisse t'aider à résoudre ton problème,

    Nylwen

  5. #5
    Membre averti
    Profil pro
    Développeur JEE & Android
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur JEE & Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Par défaut
    Je ne l'avais pas vu lui !
    Vais lire tout ça, et je posterais mon évolution

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Ta dernière ligne ne veut rien dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    locationProvider = LocationManager.GPS_PROVIDER;
    Qu'essaies-tu de faire ici ?

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo