gpt4 book ai didi

java - LocationManager requestLocationUpdates minTime OR minDistance

转载 作者:行者123 更新时间:2023-12-01 17:53:56 34 4
gpt4 key购买 nike

我正在使用 Android 的 LocationManager 及其方法 requestLocationUpdates,如下所示:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this);

我发现位置更新必须满足 minTime 和 minDistance 的条件,但我需要每 3 秒或 10 米更新一次。

我尝试提出 2 个这样的请求:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 0, this);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 10, this);

但它不起作用,我只能使用此代码每 10 米更新一次,而不是每 3 秒更新一次。

如果重要的话,我正在使用 API19。

最佳答案

有关 requestLocationUpdate() 的文档说:

requestLocationUpdates(String provider, long minTime, floatminDistance, LocationListener listener)

Register for location updates using the named provider, and a pending intent.

所以你应该这样调用它 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 10, this);

但是如果你将 minTime 设置为 0,它会在第一次收到位置更新时调用一次,然后直到你改变 minDistance 米的位置时才会调用它。

Documentation Link for Reference

编辑

根据与@Matej的讨论我需要每10米更新一次,即使它发生在不到3秒的时间内,并且每3秒更新一次,即使位置变化不超过10米

如果您想定期requestLocationUpdates,您应该使用TimerTimerTask并让requestLocationUpdates运行一次3秒

schedule(TimerTask task, long delay, long period)

Schedules the specified task for repeated fixed-delay execution,beginning after the specified delay.

关于java - LocationManager requestLocationUpdates minTime OR minDistance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47054752/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com