Wie man die Geschwindigkeit in android app mit Lage-oder Beschleunigungssensor oder auf eine andere Weise
Arbeite ich auf der app und versuchen Sie, die Geschwindigkeit und die zurückgelegte Entfernung durch den Benutzer. Benutzt habe ich Google Play services location-Klasse, um die Geschwindigkeit, aber es gibt immer mir 0.0 Wert und überhaupt nicht zuverlässig. Ich wan genaue Geschwindigkeit und zurückgelegte Distanz in Echtzeit.
Habe ich installiert, GPS-Tacho-app auf meinem Gerät und es ist so perfekt, dass selbst wenn ich zu Fuß bin, dann gibt es mir die Geschwindigkeit. Ich möchte die gleiche Sache. Ich bin verwirrt, wie zu Holen die Geschwindigkeit, mit Position oder mit Beschleunigungssensor oder gibt es irgendeinen anderen Weg, es zu tun?
Mein code ist verfügbar unter diesem link :-
Zeichnung route auf Google Maps mit Google Maps Android API v2
Bin ich die Entwicklung von der reinen location-based-app umfasst anzeigen, die Geschwindigkeit und andere Dinge, die im Zusammenhang mit Orten.
Wenn jemand ne Ahnung hat bitte bitte helfen Sie mir zur Lösung der Frage von Geschwindigkeit und Distanz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich zu tun hatte mit dem gleichen problem, was Sie tun können, ist die Verwendung Lage Strategien code.
Dann bei jedem update der Lage, Sie sparen sich die Zeit des aktuellen update. So haben Sie die vorherigen und aktuellen Standort und Zeitpunkt der Aktualisierung.
Dann berechnen Sie den Abstand in Metern zwischen den beiden Standorten (alte und neue)
So, dann hast du die Distanz und die Zeit Unterschied, ich denke, es wäre keine große Sache, um Schwung zu Holen.
Get the speed if it is available, in meters/second over ground
. Mit dieser alten Weise, Sie müssen nicht zu kümmern, wenn es verfügbar ist oder nicht.location.distanceTo(Location)
??distanceTo
Funktioniert nichtIch auch auf dieses problem, wenn ich mit Google Play Location API, ich hoffe, dass dies helfen kann.
Es gibt 0 zurück, weil Ihr Gerät nicht bekommen eine Sperre auf das GPS, oder keine Verbindung zum GPS.
Habe ich versucht, die Geschwindigkeit mit einem älteren lenovo Gerät und es gibt 0 zurück, weil es keine sperren auf ein gps.
Versuchte ich mit einem samsung galaxy nexus und es kehrte meine Geschwindigkeit(hat einen besseren GPS-sensor).
Den GPS sensor in Ihrem Telefon kann nicht gut sein, oder Sie sind in einem Bereich, der eine schwache GPS-signal, wie in einem Haus oder Gebäude.
Was ich Tat, war compute for speed wenn die Lage.hasSpeed ist falsch und location.getSpeed wenn die Lage.hasSpeed wahr ist.
Ich auch versucht, die Tätigkeit Anerkennung zu haben, eine bessere Genauigkeit der Geschwindigkeit bei der Berechnung.
in dieser Antwort im gonna zeigen Ihnen, zwei Haupt-Pfad um die aktuelle Geschwindigkeit.man ist durch die Verwendung von location service (location.getSpeed()) und die andere ist old school manuell berechnen-speed-version.
definieren zuerst die drei wichtigsten globalen Variablen
bewegen Sie nun auf Ihre onLocationChannged Methode und innen Aufruf dieser Methode,
nun umzusetzen getSpeed Methode
ok wir sind fertig mit ihm, und jetzt umzusetzen calculationBydistance Methode
hier else-Teil der Geschwindigkeit kommt in m/Millisekunden können Sie wandeln es um Sekunden...und wir sind fertig