【问题标题】:GPS update interval is faster with good signal?GPS 更新间隔越快,信号越好?
【发布时间】:2010-10-07 06:45:13
【问题描述】:

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

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

有什么想法吗?

更新:见评论

【问题讨论】:

  • 哇,升级到 Froyo (2.2) 后,updateInterval 似乎没有任何作用!我得到不断的 GPS 更新,这对我的数据库造成了严重破坏。建议?

标签: android gps locationmanager


【解决方案1】:

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

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

【讨论】:

  • 你的怀疑是正确的。在 2.1 上,系统本身根据更新间隔过滤 GPS 位置,并没有将附加信息传递给 LocationManager,但我仍然可以在 logcat 中看到它们。在 2.2 中,所有 GPS 定位都传递给 LocationManager(显然)。但是,由于使用 updateInterval 不会节省任何电池(或者看起来如此),我将测试您的方法并报告。
  • 是的,必须使用基于计时器的解决方案来打开/关闭 GPS 位置接收,因为没有更好的选择。
【解决方案2】:

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

【讨论】:

  • 好主意,但我在笔记本电脑上,所以到处调试:) 还尝试了没有调试器和 aLogCat 应用程序的构建,同样的事情发生了。
猜你喜欢
  • 2022-01-13
  • 1970-01-01
  • 2018-02-05
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
相关资源
最近更新 更多