2

私のAndroidプログラムでは、GPSを要求するときに最小時間と最小距離を設定しました. ただし、リスニングを開始すると、「onLocationChanged」アクションが発生することがあります。

聴くのをやめてから聴き始めると、新しい gps の値と過去の gps の値が比較されますか? 聴き始めたら何とかクリアしないといけないの?

注: 私はテスト時に同じ場所にいます。

4

2 に答える 2

0

最後の既知の場所を使用するには、getLastKnownLocation を使用します。

于 2012-07-29T15:59:00.963 に答える
0

これを例にとります:

LocationManager loc = (LocationManager)this.getSystemService(
    Context.LOCATION_SERVICE
);
loc.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 2000, 10, locationListener
);

処理のonLocationChanged()-method は、次のLocationListener場合に呼び出されます。

  • 前回の更新から 10 メートル以上移動しました
  • 最後の更新から2 秒以上経過している

requestLocationUpdates()-methodのドキュメントには、さらに詳しい情報が記載されています。

[...]位置情報更新間の経過時間は よりも短くなることはありませんがminTime位置情報プロバイダーの実装と他のアプリケーションによって要求された更新間隔によってはそれ以上になる可能性があります

[...]minDistanceパラメータを使用して、位置情報の更新頻度を制御することもできます。0 より大きい場合、ロケーション プロバイダーは、ロケーションが少なくとも minDistance数メートル変化し、かつ少なくとも minTimeミリ秒が経過した場合にのみ、アプリケーションに更新を送信します。

また、次の情報が含まれています。

Jellybean より前は、minTime パラメーターは単なるヒントであり、一部のロケーション プロバイダーの実装では無視されていました。Jellybean 以降では、Android 互換デバイスで minTime パラメーターと minDistance パラメーターの両方を監視することが必須です。

これは、バッテリーを節約するための単なるメカニズムです。自分で何もする必要はありません。それ以外の場合は、これらの両方のパラメーターに適切な値を選択してください。

于 2012-07-29T18:31:50.877 に答える