5

我正在为 iPhone (iOS 6) 开发一个定位应用程序,它不断向网络服务发送准确的位置信息。我进行了设置,以便应用程序每分钟发送一个位置数据包(只要位置发生重大变化)。应用程序的这一部分运行良好(作为后台任务),但正如您可能期望的那样,它会显着影响电池寿命,让 GPS 一直处于开启状态(我得到大约 6 小时,这还不错,因为我习惯于插电在我的手机在车里和在家的时候,这样我就可以度过一天了,但我需要将它延长到至少 16 小时才能实用)。

我想做的是在手机显示一段时间没有明显移动时关闭 GPS。使用 GPS 数据本身很容易做到这一点。但是,在 GPS 关闭的情况下,我可以使用什么作为触发器来重新打开它并重新启动位置发布?我可以在感应到 5 分钟内没有生成新头寸时将其关闭,然后在 X 分钟后检查头寸以查看它是否已更改,并采取相应措施。或者,也许我可以以某种巧妙的方式使用加速度计或其他传感器来触发再次打开 GPS。

鉴于旅行时间通常是一天中的一小部分,在家中或办公室时尽量减少 GPS 活动是有意义的……但如何可靠地做到这一点?

4

4 回答 4

2

我可能考虑的模型是使用标准位置服务来获取我的位置,一旦我得到了它,就关闭它并打开耗电量少得多的显着变化位置服务。而且,一旦我收到后续的重大更改通知(您可能想忽略第一个,因为您已经有了准确的位置),您可以再次打开标准位置服务以获得准确的位置(假设您完全需要它...... . 如果您不需要超级准确的位置,您显然只需从一开始就使用重大更改位置服务)。

或者,如果您这样做并且仍然使用过多电量,您可以完全关闭定位服务,然后在一定时间后重新打开,但您可能会在此期间丢失重大的位置更改,如果用户根本不动,在许多情况下它会比上述技术使用更多的功率。

于 2012-12-11T20:03:21.433 回答
1

这不是一个完整的答案,但完全使用 GPS 的替代方法是惯性航位(推断)推算。这可以仅使用加速度计和陀螺仪(以及一些聪明的数学)来实现,偶尔使用 GPS 作为检查。我不知道这种方法有多准确,或者它对电池时间的影响是什么......我会在我实施它时告诉你;-)

尽管Android 加速度计精度(惯性导航)似乎表明它不值得付出努力,但我认为这仅使用加速度计,而不使用陀螺仪 - 这两种设备提供了不同的运动方面:陀螺仪与加速度计? .

于 2012-12-12T13:45:04.977 回答
0

如果您不担心关闭 GPS 几分钟会导致精度下降,那么您可以考虑完全关闭它。手机信号塔定位机制工作正常,尽管它定位到可能有一段距离的信号塔。但是,在几分钟之内,无论如何都很容易走那么远。而且做基站的网络定位器也做wifi网络,精度在20m左右。而且 GPS 无论如何都不能在室内工作。因此,请始终关闭 GPS,并始终打开网络位置。

于 2012-12-11T19:33:55.353 回答
0

我的应用程序(正在开发中)在后台运行 8 小时,每秒将一个修复记录到文件中。够了,不会好转的。您不能同时拥有 GPS 精度和 20 小时电池。
6 小时,这也可能是由服务器通信(或使设备经常启用)引起的。

但是一个有趣的方法可能是运动传感器,但它需要多少电池是一个很好的问题。
你知道任何可以记录精确 GPS 超过 8 小时的 iPhone 应用程序吗?我从未测量过,但尝试 MotionX gps,它们可以记录多长时间。

于 2012-12-11T23:36:03.193 回答