0

我有一个需要在后台运行的基于位置的应用程序。我有几部正在测试的 iPhone,包括较旧的 3G。我将我的应用程序注册为需要基于后台位置的服务,并且一切都按照旧款 3G 手机所宣传的那样工作。当您按下锁定按钮时,它会执行 applicationWillResignActive: 正如预期的那样,不幸的是手机立即进入低功耗模式,就是这样。当您将手机与 USB 数据线连接,然后按下锁定按钮时,3G 手机会保持活动状态并正确报告位置变化。当它断开连接时,它会立即进入低功耗模式。

奇怪的是,我很确定它曾经可以工作。我想看看那里是否有人在旧 iphone (3G) 上运行了一个应用程序,该应用程序注册了位置服务,并且在按下锁定按钮时不会立即进入低功耗模式。如果是这样,我做错了什么。

我遵循了所有的指示,在我的 Info.plist 中有位置。

谢谢你的帮助!

干杯,布莱恩

4

1 回答 1

0

我认为您正在看到预期的行为。

我注意到在最近一次使用旧 3g 的旅行中,位置管理器似乎只有在 USB 供电时才保持活动状态。在 USB 上,解锁手机会立即启动应用程序(在这种情况下是谷歌地图),并且位置管理器处于活动状态。如果没有 USB,我每次解锁手机时都必须重新启动位置管理器。

我强烈怀疑这是安全/省电功能。位置管理器以惊人的速度消耗电池寿命,尤其是在旧设备上。通过在使用电池的情况下连续运行位置管理器,您可以在用户不知情的情况下轻松地将他们的手机拉平。

对于任何需要位置管理器在后台连续运行的设计,我都会持怀疑态度。彻底测试它。

您不希望用户决定“当我使用 Bryan 的应用程序时,我的电池神秘地没电了”而造成的经济后果或让某人在紧急情况下没有工作电话的道德后果。

于 2011-06-08T18:40:00.557 回答