2012-04-10 6 views
0

Ich erstelle eine Anwendung, die die Geschwindigkeit des Benutzers während der Fahrt mit der Android-Standortklasse erhält. Das Problem, mit dem ich konfrontiert bin, ist, dass jeder Beitrag in einem Forum oder Artikel Probleme mit der Methode getSpeed ​​() erklärt. Nachdem ich gerade in mein Auto gegangen bin, um mehrere Male zu testen, gibt es 0 zurück. Ich bin mir nicht sicher, warum, ich frage mich nur, ob jemand herausgefunden hat, warum und wie man die tatsächliche Geschwindigkeit erreicht?Android getSpeed ​​vom Standort

Vielen Dank im Voraus

Antwort

1

getSpeed ​​funktioniert gut, sofern Sie eine fähige GPS-Hardware in Ihrem Gerät und Sie haben genügend Satelliten in Sicht. Ich benutze es für eine Fluganmeldung.

Ein Problem mit getSpeed ​​ist, dass der Emulator immer 0 zurückgibt; auch wenn es mit NMEA-Daten gespeist wird, die Geschwindigkeitsinformationen haben. Das Testen erfordert also die echten Geräte.

Wenn sich der GPS-Empfänger im Auto befindet, kann es sein, dass er nicht genügend Satelliten für den Test erfassen kann. Versuchen Sie, das Gerät in der Nähe der Windschutzscheibe zu belassen (wenn es nicht mit einer reflektierenden Oberfläche bedeckt ist, die auf etwas Metallischem basiert!) Und geben Sie ihm Zeit, eine Reparatur zu machen. Ziehen Sie in Erwägung, einen GpsStatusListener zu verwenden, um die Anzahl der sichtbaren Satelliten zu ermitteln.

Der oben erwähnte Trick zur Berechnung der Geschwindigkeit aus Abständen von Proben erfordert eine Filterung der Daten. Je mehr Samples Sie verwenden, desto mehr Störgeräusche erhalten Sie (Sie müssen filtern, suchen Sie hier, es gibt mehrere Artikel zu stackoverflow zu diesem Thema). Je weniger Stichproben Sie verwenden, desto größer ist der Fehler, wenn Sie sich nicht auf einer geraden Linie bewegen.

Verwandte Themen