[これは2010年に尋ねられた質問と重複していることは承知していますが、その質問が実際に回答を得ることはありませんでした]
一部のWindowsPhoneアプリをAndroidに変換しています。アプリはすべて、動きの追跡を中心に展開しています。WP7では、ロケーションウォッチャーには「MovementThreshold」プロパティがあり、GPSが移動イベントをトリガーするために必要な移動量を設定します。通常、歩行時はしきい値を低くし、ジェット機の場合はしきい値を高くします。速度が変化した場合に動きを得るたびにそれを変更するこのようなコードでスロットルすることができます。
if (mph < 7) watcher.MovementThreshold = 5;
else if (mph < 15) watcher.MovementThreshold = 20;
else if (mph < 30) watcher.MovementThreshold = 100;
else if (mph < 50) watcher.MovementThreshold = 400;
else if (mph < 100) watcher.MovementThreshold = 800;
else if (mph < 120) watcher.MovementThreshold = 1200;
else if (mph < 200) watcher.MovementThreshold = 2400;
else if (mph < 400) watcher.MovementThreshold = 4800;
else watcher.MovementThreshold = 9000;
現在、Androidバージョンのアプリでは、位置情報サービスの開始時に次の呼び出しを1回行います... locMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER、0、0、locLstnr);
その3番目のパラメーターはminDistance(現在はゼロに設定されています)であり、WP7のMovementThresholdと非常によく似ています。
私の最初の質問は次のとおりです。WP7アプリでMovementThresholdを調整するのと同じ方法で、AndroidアプリでminDistanceを調整できますか?私の2番目の質問は、どのような種類の呼び出しがスロートを行うのに最も効率的でしょうか?-上記のrequestLocationUpdates呼び出しを繰り返して、minDistanceパラメーターを変更しますか?ありがとう、ゲイリー