2012-11-20 5 views
0

Android fournit une API de géolocalisation pour la gestion de la localisation des utilisateurs à l'aide de gps, gsm ou wifi. Avec cela, on peut déterminer l'emplacement actuel de l'utilisateur. Ma méthode repose uniquement sur les entrées du récepteur gpsCalcul du temps écoulé sur un emplacement particulier à l'aide de la géolocalisation dans Android

En utilisant l'API de géolocalisation, comment puis-je déterminer combien de temps un utilisateur est sur une géolocalisation particulière?

Répondre

1

Essayez avec un runnable comme:

private Handler handler = new Handler(); 

    public static final int timeElapsedCheckingDelay = 100; // in ms 

    private float timeElapsed = 0; 

    private Runnable timeElapsedChecker = new Runnable() 
    { 
     public void run() 
     { 
      if(gpsActual != gpsLast) //get the last position and check 
      { 
      //You can export wherever for example a toast 
      timeElapsed = 0; 
      gpsActual = gpsLast; 
      } 
      else 
      timeElapsed +=0.1; 

      handler.removeCallbacks(timeElapsedChecker); // remove the old callback 
      handler.postDelayed(timeElapsedChecker, timeElapsedCheckingDelay); 


     } 
    }; 

Ceci est plus ou moins pseudocode espérons que cela vous aide :)

+0

Cela résoudrait probablement plus la question. mais, selon mon expérience, cela ne tolérera pas les problèmes de précision. Le GPS peut pointer vers un emplacement proche, mais l'utilisateur n'a pas bougé de sa place. dans ce cas, il ne donnera pas le résultat correct. –

+0

Dans ce cas, lorsque vous vérifiez votre position, vous devez connaître l'erreur de gps et calculer votre position dans un intervalle de valeurs. Par exemple 2 mètres de radio, sinon je pense qu'il n'y a pas de solution, car les coordonnées ne sont pas exactes. –

+0

oui, je comprends. Je vais devoir définir un seuil de distance où, dans un changement à moins de 50 mètres, je vais être mis au rebut. –