1

の仕組みについて少し混乱しています。

  1. requestlocationUpdates(LocationManager.GPS_PROVIDER, , );を位置情報プロバイダーとして配置し、アプリをテストするとします。GPS を有効にしていない場合はネットワークから更新を取得し、有効にすると GPS から取得することがわかります。ネットワーク プロバイダーと GPS プロバイダーの両方が独自に切り替えた場合に更新を送信するように設定するポイントは何ですか?

  2. の 3 番目のパラメーターはどのように機能しますrequestlocationUpdatesか? つまり、設定した距離が変化すると言っていますが、移動したことをどのように検出できますか?

4

2 に答える 2

0

次のコードで試すことができます

Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);

ここで、Criteriaは、ロケーションプロバイダーを選択するためのアプリケーション基準を示すクラスです。プロバイダーは、精度、電力使用量、高度、速度、方位を報告する機能、および金銭的コストに応じて注文される場合があります。

それから

locationManager.requestLocationUpdates(provider,0, 0, new MyLocationListener());

2番目と3番目のパラメーターを使用して、リスナーが2番目と3番目のパラメーターで更新を受信する頻度を制御できるようにします。2番目は通知間の最小時間間隔で、3番目は通知間の距離の最小変化です。両方ともゼロに、可能な限り頻繁に位置通知を要求します。

于 2013-03-12T12:01:57.673 に答える
0
  1. requestLocationUpdates(...) は、指定されたプロバイダーが有効になっているときに onLocationChanged(...) がトリガーされ、onLocationChanged メソッドで最新の座標を取得することを意味します。新しい場所を検出する前にシステムが使用するデフォルトの場所、別名キャッシュの場所、または LastKnownLocation があります。

  2. もちろん、現在の場所が以前の場所 (キャッシュの場所) と異なる場合、システムは移動していると見なします。

于 2013-03-18T07:46:01.307 に答える