3

我试图限制我的程序每 10 秒进行一次位置更新,而不是不断更新,以减少电池消耗。当我在室内调试并且信号较弱(即 GPS 图标闪烁)时,这工作正常,但如果手机得到适当的修复(即 GPS 图标是静态的),更新间隔会增加到大约一秒。

我知道代码mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, updateInterval*1000, 0, this);不会强制 GPS 在给定的时间间隔内准确地进行更新,但在我看来,它不应该取决于信号的强度并且波动太大。

有任何想法吗?

更新:见评论

4

2 回答 2

3

我怀疑 GPS 收音机的工作方式要么连接到 GPS 卫星,要么不连接。连接后,Android SDK 会尽可能频繁地向您发送 GPS 硬件提供的更新。当它没有完整的 GPS 连接时,它会根据您的请求回退到发送 AGPS 更新。

如果您只想每 10 秒更新一次,则应将最后收到Location的时间值保存在侦听器中,并在收到新Location的时间时检查其与旧值的时间;如果它太频繁(或者做一些更聪明的事情,比如检查准确性和替换旧值等),请忽略它。

于 2010-10-15T21:11:15.857 回答
0

也许它工作得更慢是因为你在调试,但不是因为你的信号很弱!尝试在室内使用断开连接的调试器进行测试...

于 2010-10-07T09:19:56.727 回答