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

API standards et tierces Android Discussion :

Accélérer la localisation GPS


Sujet :

API standards et tierces Android

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 62
    Points : 39
    Points
    39
    Par défaut Accélérer la localisation GPS
    Bonjour

    je me posais la question de savoir comment accélerer la localisation GPS car suivant les appareils on a le temps de décharger sa batterie ;-)
    j'utilise googlemap V2 avec
    lat= (location.getLatitude());
    lng= (location.getLongitude());
    mais ca tarde vraiment parfois.
    on peut récupérer l'ancienne localisation mais ca n'a pas d'intéret à mon sens si on a perdu le signal il y a longtemps.

    Ma question (double) peut on accélerer l'acquisition (droits ou autres à ouvrir) et si ce n'est pas le cas comment peut on forcer cette activité à garder le focus car bien sur lorsque le téléphone se met en veille et qu'on "réveille" l'activité il faut tout recommencer.

    D'avance merci pour les tuyaux.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Il n'ya pas de secret :

    Soit tu utilises le provider réseau et donc tu localise approximativement via Wifi/3G mais de manière très rapide.

    Soit tu utilises réellement le GPS et tu dois attendre que le téléphone est trouvé plusieurs satellites (3 voir 4 mini) avant d'avoir une position.

    Soit tu utilises un mix des deux pour fournir une position approximative rapidement et la préciser plus tard.

    comment peut on forcer cette activité à garder le focus car bien sur lorsque le téléphone se met en veille et qu'on "réveille" l'activité il faut tout recommencer
    Il te faut un service de localisation qui tournerae en tache de fond et sera donc actif même si ton activité est mise en pause.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    je me disais bien qu'il fallait faire une tache de fond pour la activer la localisation dès l'entrée sur l'appli mais je ne sais comment m'y prendre.
    Dois je faire une asynctask dans chaque activité (et redémarre t'elle à chaque changement d'activité) ou y a t'il une moyen de laisser une activité dédiée toujours en action?
    une piste vers un tuto serait sympa

    Je me demandais aussi comment faire pour tester son appli sur un autre smartphone pour que googlemap ne soit pas désactivé peut on utiliser le debug.keystore ou faut il s'neregistrer sur google et utiliser une nouvelle clé qu'il me fournira à ce moment là?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    y a t'il une moyen de laisser une activité dédiée toujours en action?
    Ca s'appel un service :
    http://developer.android.com/referen...p/Service.html
    http://nbenbourahla.developpez.com/t...-sous-android/

    Je me demandais aussi comment faire pour tester son appli sur un autre smartphone
    Tu branche ton téléphone au pc et tu déploie via eclipse ou tout autre IDe que tu utilises.
    En debug y'a pas d'histoire de keystore , c'est juste au moment de la publication sur Google play
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    merci pour l'info effectivement c'est bien ce que je cherchais, mais question comment être sur que le service sera "destroyé" si l'utilisateur quitte l'appli avec le bouton menu de son smartphone.
    Arreter le service au sortir de l'appli via un bouton quitter ok c'est facile à faire mais si l'utilisateur ne passe pas par le botuon idoine y a t'il un système genre "onunload application" à mettre sur toutes les activités qui sache distinguer le passage d'une activité à une autre d'un "quittage" de l'appli?

    Après quelques tests si je quitte par le bouton ok le service s'"arrete mais si je quitte via le bouton de menu central sur mon smartphone le service continue... que faire?

    code du bouton d'arret du service et quittage d'appli.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public void addListenerOnButton0() {
    		button = (Button) findViewById(R.id.bouton0);
    		button.setOnClickListener(new OnClickListener() {
    			@Override
    			public void onClick(View arg0) {
    				Intent intent = new Intent(context, GpsService.class);
    				stopService(intent);
    				System.exit(0);
    	         }
    	});
    	}



    Pour le keystore quand j'ai généré l'apk j'ai juste installé celle ci et regardé dans le logcat le code sha1 qu'il indiquait et demandé sur google de créer un keymap correspondantpour regénérer l'apk avec le bon code comme cela j'ai pu envoyer par mail l'apk à un pote qui a pu tester avec la carte. ^^

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 62
    Points : 39
    Points
    39
    Par défaut
    pour l'instant la seule solution qui me semble viable est de désactiver le service dès qu'il trouve ses coordonnées.
    mais si l'utilisateur reste longtemps sur l'appli avant d'aller dans la partie qui requiert les coordonnées j'ai peur qu'il ait bougé et donc qu'elles ne soit plus à jour, je lance donc le service au départ de l'appli et en redemande une couche lors du passage à l'activité qui en a besoin.
    Ca vous parait bon comme raisonnement ou bien y a t'il une autre facon de tuer ce service au sortir de l'appli autrement que par le bouton fait pour ca?

  7. #7
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    C'est quoi "sortir de l'appli" ?

    La notion de "quitter" une application n'a pas de sens dans Android, on ne quitte jamais les applications vraiment.

    Par contre l'application recoit des "onTrimMemory" parfois.

    Si j'ai bien compris, l'application a une activité qui a besoin de localisation précise c'est bien ça ? Et afin d’accélérer le processus tu veux démarrer la localisation le plus tôt possible.

    Une idée par exemple, toutes les activités dans le onResume() font appel au service avec un "startLocation()", et dans le onPause() font appel au service avec un "stopLocation()".

    Dans le startLocation(), le service incrémente un compteur... Et démarre la localisation si besoin.
    Dans le stopLocation(), le service décrémente le compteur... Et se poste une demande d'arrêt pour dans X secondes (par exemple 30s).
    Dans le onStopRequest() (ci-dessus) la localisation est arrêtée.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. position localisation gps
    Par rexavier dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/05/2013, 13h31
  2. Boite de progression "Patientez" pendant une localisation GPS
    Par jeanjean6 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 24/08/2011, 14h15
  3. [Localisation GPS - ANDROID 2.2] Acquisition et rapidité
    Par ikeabp dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 07/04/2011, 20h26
  4. [Localisation GPS] Problème d'acquisition et de rapidité
    Par mamatt dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 06/04/2011, 22h39
  5. Fermer la localisation GPS
    Par alec.po dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 09/09/2010, 12h50

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