我正在为 iPhone (iOS 6) 开发一个定位应用程序,它不断向网络服务发送准确的位置信息。我进行了设置,以便应用程序每分钟发送一个位置数据包(只要位置发生重大变化)。应用程序的这一部分运行良好(作为后台任务),但正如您可能期望的那样,它会显着影响电池寿命,让 GPS 一直处于开启状态(我得到大约 6 小时,这还不错,因为我习惯于插电在我的手机在车里和在家的时候,这样我就可以度过一天了,但我需要将它延长到至少 16 小时才能实用)。
我想做的是在手机显示一段时间没有明显移动时关闭 GPS。使用 GPS 数据本身很容易做到这一点。但是,在 GPS 关闭的情况下,我可以使用什么作为触发器来重新打开它并重新启动位置发布?我可以在感应到 5 分钟内没有生成新头寸时将其关闭,然后在 X 分钟后检查头寸以查看它是否已更改,并采取相应措施。或者,也许我可以以某种巧妙的方式使用加速度计或其他传感器来触发再次打开 GPS。
鉴于旅行时间通常是一天中的一小部分,在家中或办公室时尽量减少 GPS 活动是有意义的……但如何可靠地做到这一点?