AndroidLocationクラスを使用して運転中にユーザーの速度を上げるアプリケーションを作成しています。私が直面している問題は、フォーラムや記事へのすべての投稿がgetSpeed()メソッドの問題を説明していることです。何度かテストするために車に乗り込んだところ、0が返されます。理由はわかりません。実際の速度を取得する理由と方法を誰かが見つけられたのではないかと思います。
前もって感謝します
AndroidLocationクラスを使用して運転中にユーザーの速度を上げるアプリケーションを作成しています。私が直面している問題は、フォーラムや記事へのすべての投稿がgetSpeed()メソッドの問題を説明していることです。何度かテストするために車に乗り込んだところ、0が返されます。理由はわかりません。実際の速度を取得する理由と方法を誰かが見つけられたのではないかと思います。
前もって感謝します
getSpeed は、デバイスに有能な GPS ハードウェアがあり、十分な数の衛星が見えていれば問題なく動作します。フライトロギングアプリケーションに使用しています。
getSpeed の 1 つの問題は、エミュレーターが常に 0 を返すことです。速度情報を持つNMEAデータが供給されている場合でも. したがって、テストには実際のデバイスが必要です。
GPS 受信機が車内にある場合、テストに間に合うように十分な衛星を取得できないという問題が 1 つあります。デバイスをフロントガラスの近くに置いてみて (金属のような反射面で覆われていない場合)、時間をかけて修正してください。GpsStatusListener を使用して、可視衛星の数を取得することを検討してください。
サンプルの距離から速度を計算する上記のトリックには、データのフィルタリングが必要です。使用するサンプルが多いほど、ノイズが多くなります (フィルタリングが必要です。ここで検索してください。このトピックに関するスタックオーバーフローに関する記事がいくつかあります)。使用するサンプルが少ないほど、直線上を移動していないときのエラーが大きくなります。