LocationManager requestLocationUpdates minTime OR minDistance

2024-04-24

我用的是安卓系统LocationManager及其方法requestLocationUpdates像这样:

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

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

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

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

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

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


requestLocationUpdate() 的文档说:

requestLocationUpdates(字符串提供者,长minTime,浮点数 minDistance、LocationListener 监听器)

使用指定的提供程序和待处理的意图注册位置更新。

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

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

参考文档链接 https://developer.android.com/reference/android/location/LocationManager.html

EDIT

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

如果你想定期requestLocationUpdates,你应该使用Timer and TimerTask并有requestLocationUpdates每 3 秒运行一次

Schedule(TimerTask任务,长延迟,长周期)

安排指定任务重复固定延迟执行, 在指定的延迟后开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LocationManager requestLocationUpdates minTime OR minDistance 的相关文章

随机推荐