1
locationmanager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationlistener);

このコード行は、デバイスの場所をできるだけ頻繁に更新することになっていることを理解していますよね? 具体的には、0 ミリ秒および 0 メートル (最小) ごとです。

さて、ここでは「最小」という言葉が重要ですが、それでも、場所が 30 秒以上更新されないことがあるのはなぜでしょうか? WiFi を使用しているときに、ある更新から次の更新までの実際の時間を計ったところ、コードに 0 と 0 が含まれていたにもかかわらず、38 秒かかりました。1000ミリ秒(1秒)で試してみましたが、それでも頻繁に更新されません.

この更新をより頻繁に行うにはどうすればよいですか? なぜこのように反応するのでしょうか。

ありがとうございました!

4

1 に答える 1

2

簡単に言えば、できません (より頻繁に更新するようにします)。

ドキュメントによると、min_distance と min_time をゼロに指定すると、「可能な限り頻繁に更新」されることが示されています。したがって、あなたが見ているのは「できるだけ頻繁に」です。通常、何かが変更されない限り更新は行われないため、移動していない場合は必ずしも更新が行われるとは限りません。また、GPS ではなくネットワーク ロケーションを使用しているため、ロケーションの精度はそれほど高くないため、それほど頻繁に更新されることは期待できません。

また、各ハードウェア ベンダーはロケーション プロバイダーの実装方法も異なります。したがって、更新の頻度は、ハードウェア ベンダーの実装によって決まります。

于 2012-05-07T15:02:04.520 に答える