2016-04-26 15 views
1

Ich versuche eine einfache App zu erstellen, die sich darum dreht, jemandes Geschwindigkeit zu verfolgen. Ich habe den Standortführer von Android Studio gelesen, er zeigt jedoch nicht, wie Sie die Geschwindigkeit eines Nutzers ermitteln oder den Standort eines Nutzers in einem gleichmäßigen Intervall abrufen können.Wie bekomme ich alle paar Sekunden einen Standort?

Derzeit hat ich diesen Code-Snippet ein:

if (OldLocation != null) { 
      OldLocation = NewLocation; 
      NewLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 
     } else { 
      OldLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
      try {Thread.sleep(1000);} catch (InterruptedException ex) { 
       Thread.currentThread().interrupt(); 
      } 
      NewLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     } 
     float distance = OldLocation.distanceTo(NewLocation); 
     float speed = distance/1000; 

ich derzeit Thread.sleep verwenden, dies zu tun, obwohl ich es denken würde, ein besserer Weg Updates regelmäßig zu beantragen.

Kann mir jemand wie zeigen?

Antwort

1

Das ist der schlimmste Weg, den Sie tun können. Aus einem Dutzend Gründen sollten Sie fast nie getLastKnownLocation verwenden - und kontinuierliche Updates zu bekommen ist definitiv KEINE dieser Möglichkeiten. Verwenden Sie stattdessen LocationManager.requestLocationUpdates(). Sie stellen es als Callback-Objekt zur Verfügung und es ruft Sie auf, wenn eine aktualisierte Position verfügbar ist.

Verwenden Sie auch den LocationManager oder den Google Play Fused Location. Es gibt keinen guten Grund zu mischen und anzupassen.

+0

Gibt es eine Möglichkeit, einen Ort zu jedem Sagen, 5 Sekunden anzufordern? – Mildwood

+1

Das ist ein bisschen zu schnell. Standort-Updates anfordern ruft Sie alle n Sekunden auf, aber nur wenn es ein Update hat. GPS aktualisiert in der Regel Ihren Standort etwa zweimal pro Minute –

+0

Okay. Ich denke, ich müsste dann kein bestimmtes Intervall einstellen. Danke für Ihre Hilfe! – Mildwood

Verwandte Themen