使用 GPS 和 Web 更新延长 Windows Mobile 的电池寿命
我有一个在 Windows Mobile 上运行的应用程序,并使用 GPS 以不同的时间间隔更新其位置。 正如预期的那样,启用 GPS 芯片会消耗更多的电池电量。 (不废话..)
所以目前我的技术是在大约 10 分钟内循环打开/关闭 GPS。 每 4 分钟获取一次位置,如果情况发生变化则执行某些操作,并且仅在必要时将其位置更新到网络。 否则,请再次关闭并等待。
在我用了一年的 HTC Touch Diamond 手机上,新充电后,屏幕保持打开状态(但变暗),+ WiFi,除了让它静置之外什么都不做,我最多可以使用 6 个小时。
这“没问题”,但 GPS 的使用很容易缩短常规“现实世界”使用时间 (YMMV) 的估计 2-4 小时。
我一直在考虑的另一个选择是让网络服务器在需要时向手机发出信号以更新其位置,而不是让手机盲目地执行此操作。
这样,手机仅使用电量来获取数据连接并检查服务器。 如果服务器告诉它更新,它才会打开 GPS。
除了响应时间要慢得多(我猜测),并且如果手机在某个地方它无法轻易获得稳定的更新,那么您甚至不知道它的最后位置。 到了这个时候,你就只能等待了。
我希望这款手机能够更加自主。
我是否可以使用更好的算法来改进此设置?
谢谢。
I have an app that runs on Windows Mobile and uses the GPS to update its location at various intervals. As expected, enabling the GPS chip uses more battery power. (no duh..)
So currently my technique has been to cycle the the GPS on/off at approx. every 4 minutes to acquire the location, do something if things changed, and update its location to the web only if necessary. Otherwise, shut it off again and wait.
On my one year old HTC Touch Diamond phone, with a fresh charge, leaving the screen ON (but dimmed), + WiFi, and doing nothing else but letting it sit there, I got a maximum of 6 hours from it.
This is "ok", but the usage of the GPS easily cuts an estimate of 2-4 hours of regular 'real-world' usage (YMMV).
The other option I've simply been thinking about is to have the web server instead signal the phone to update its location when needed, instead of the phone just doing it blindly.
That way, the phone only uses power to get a data connection and check the server. If the server tells it to update, only then does it turn on the GPS.
Except that the response time of that is much slower (I'm guesstimating), and if the phone is somewhere it can't readily get a stable update, then you won't even know its last location. At which point, you're stuck waiting.
I was hoping the phone could be more autonomous.
Is there possibly yet a better algorithm I could use to improve this setup?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为您当前的解决方案将表现最佳,并为用户提供最佳体验。
如果您的网络服务器触发手机进行更新,那么您实际上依赖了太多可能会断开连接的外部事物(不确定这是否会影响您的用户,因为您没有提及该应用程序的功能)。
如果您可以并且尚未这样做,您还可以确保您的应用程序在后台运行或屏幕处于“睡眠”状态时不会打开 GPS。 这样,您只需在应用程序激活后立即启动它,并且在应用程序不使用时就不会浪费电池。
就我个人而言,我知道如果我使用 Wifi/GPS/数据密集型应用程序,无论如何它都会大大缩短我的电池寿命。 您所经历的下降似乎与我经历过的其他应用程序并没有太大出入。 保持原样并让用户满意(即使他们必须更频繁地充电)。
I think your current solution is going to perform the best and provide the best experience to the users.
If you have your web server trigger the phone to update, you're really relying on too many outside things that could become disconnected (not sure if that affects your users, since you don't mention what the app does).
If you can and haven't already, you could also make sure that your app doesn't turn on the GPS if the app is running in the background or while the screen is "asleep". That way you just fire it up as soon as the app becomes active and you're not wasting battery while the app isn't in use.
Personally, I understand that if I'm using a Wifi/GPS/Data heavy application it's going to shorten my battery life considerably anyway. It doesn't seem like the decrease you're experiencing is too far out of line with other apps I've experienced. Keep it the way it is and make the user happy (even if they have to charge a little more often).
您正在使用的 GPS 引擎是否具有任何可访问的内置低功耗操作模式。 我已将 SiRF 和 u-blox 的几种不同的 GPS 芯片组嵌入到产品中,发现在电池电量方面,将 GPS 保持在低功耗模式下打开比将其关闭然后重新获取更便宜。 。 就我而言,在低功耗模式下,所有关闭时间都少于 15 分钟,它使用的能源较少。
基于 SiRF(SiRFStar-2 和 SiRFStar-3)的 GPS 引擎具有“涓流供电”模式,其中 GPS 在每次唤醒时仅开启几百毫秒。 唤醒间隔可以设置为大约 5 秒,这意味着消耗的电量是连续开启状态的 5-10%。 准确性方面存在一些小问题,但如果修复质量下降,芯片组将返回连续供电模式。
Does the GPS engine that you are using have any accessible built-in low power operating modes. I have embedded a couple of different GPS chipsets from SiRF and u-blox into products and found that it was cheaper in battery power terms to leave the GPS switched on in its low power mode than to turn it off and then let it re-acquire. In my case it used less energy in a low power mode for all switch off times less than about 15 minutes.
SiRF (SiRFStar-2 and SiRFStar-3) based GPS engines have a "tricklepower" mode where the GPS is only switched on for a couple of hundred milliseconds on each wakeup. The wakeup interval can be set to maybe 5 seconds, meaning that the power consumed is 5-10% of the continuously on state. There is some small tradeoff in accuracy, but the chipset will return to continuously powered mode if the quality of the fix is degraded.