我用的是安卓系统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(使用前将#替换为@)