当我们的应用程序未在iOS上运行时,如何让我的应用程序收集GPS?

时间:2014-06-02 14:56:07

标签: ios gps

所有,

我们的应用程序主要由我们的内部员工使用,我们拥有自己的企业许可证,而不是通过苹果商店。我们希望该应用程序能够始终记录驾驶GPS,从上午9:00到下午5:00,即使我们的应用程序未运行,当然也得到了用户的许可。

因此,当我们的应用程序在前面或后台运行时,收集GPS数据没有问题。但是,有时当ipad进入睡眠状态并且我们的应用程序被杀死时,无论如何要求系统唤醒我们的应用并更新gps更新,如果有重大的gps更改?或者,当我们的应用启动时,将这些更新推迟到我们的应用如果有可能,它是否需要我们通过应用程序商店而不是使用企业许可证(这是我们之前听到的)?

感谢。

1 个答案:

答案 0 :(得分:0)

我不确切知道您的要求,但在这种应用中,电池耗尽可能是个大问题。
要回答您的问题,可以让您的应用在后台运行并仍然记录位置数据。您应该做的唯一事情就是激活后台位置更新。enter image description here
这个技巧也适用于企业计划。如果精确数据不是您所需要的,您只需激活- (void)startMonitoringSignificantLocationChanges激活该方法,设备将以较低的精度记录较少的数据,但电池持续时间的好处是巨大的。 Apple写的一个写得很好的用例有一个look [UPDATE]
以下是Apple关于重大位置变化的说法

  

如果您让重要更改位置服务正在运行并且您正在运行   iOS应用程序随后被暂停或终止,该服务   新位置数据到达时自动唤醒您的应用。在   唤醒时间,应用程序被放入后台,你得到一个   少量时间(约10秒)手动重启位置   服务和处理位置数据。 (您必须手动重启   在任何待定位置之前的后台位置服务   可以提供更新,如“了解何时开始”中所述   位置服务。“)因为你的应用程序在后台,它必须这样做   最小化的工作,避免任何任务(如查询网络)   可能会阻止它在分配的时间到期之前返回。如果   它没有,你的应用程序将被终止。如果iOS应用需要更多   处理位置数据的时间,它可以请求更多的背景   执行时间使用   beginBackgroundTaskWithName:expirationHandler:方法   UIApplication类。