複数のプロバイダーから位置情報の更新を正常に取得し、それらをフィルター処理して現在の最適な見積もりを提供するコードがあります。
ユーザーが実際に移動しているときに、返された Location.hasSpeed() および .hasBearing() 値をチェックして、方位関連の計算を行うコードを追加しました。
2.3.3 を実行している Huawei Sonic ではすべて正常に動作しますが、4.0.4 を実行している Google Nexus S では、GPS プロバイダーの Locationは常に.hasSpeed() に対して false を返し、.getSpeed() に対して 0 を返します。
ロケーション リスナーを登録すると、GPS プロバイダーは .supportsSpeed() に対して true を返しますが、精度が 30 m にまで低下し、物理的に移動している場合でも (車内、ダッシュボードで最大受信の場合)、ロケーションの速度を返すことはありません。 、画面オン)。
2.3.x から ICS 4.x への違いはありますか? プロバイダーがサポートを報告している場合でも、独自の速度計算を実装する必要がありますか?