3

android.location.Location.getSpeed() について質問があります。LocationListener を実装し、GPS を使用するようにプロバイダーを指定しました。このように getSpeed() は常に 0.0 です。私はこれについて読みました、問題ありません。ここで、基準を設定して指定すると

criteria.setSpeedRequired( true );

そしてさらに下へ

String bestProvider = mLocationManager.getBestProvider( criteria, true );
mLocationManager.requestLocationUpdates( bestProvider, mIntervaltime, mDistance, locationListener );

bestProvider は再び GPS プロバイダーですが、速度値を受け取ります。なぜですか?LocationManager.GPS_PROVIDER と mLocationManager.getBestProvider( criteria, true ); の違いは何ですか? 以下を確認して、両方が GPS プロバイダーを使用していることを明らかにした場合:

Log.i( TAG, "  Provider: " + location.getProvider() );
4

2 に答える 2

1

質問を誤解しているかもしれませんが、GPS がゼロより大きい速度値を報告するには移動している必要があります。

于 2013-04-13T14:57:19.183 に答える
0

速度の記録と処理には少しオーバーヘッドがあると思います。また、常に速度を知る必要があるわけではないため、プロバイダーが同じままであっても、有効化をオプションにすることは理にかなっています.

于 2013-04-13T15:01:36.237 に答える