Ios 交换机btw位置管理器和区域监控

Ios 交换机btw位置管理器和区域监控,ios,core-location,cllocationmanager,geofencing,clregion,Ios,Core Location,Cllocationmanager,Geofencing,Clregion,对于作为科学研究一部分的应用程序,我必须实施位置跟踪。参与研究的用户知道这一点,并愿意提供这些数据。此应用程序的两个前提是: 在用户移动时以尽可能高的精度跟踪其位置 使用尽可能少的电源,这样用户就不会觉得有必要关闭应用程序。在他们不使用应用程序时,请关闭应用程序的位置服务 我知道这两个要求通常是相互排斥的:所以一般的问题是,在这中间最好的策略是什么? 我的想法是,在位置不断变化的情况下,像往常一样以尽可能高的精度进行监控。如果我们检测到这些位置更新之间的差值在一定时间内几乎为0,我们将假设用户不

对于作为科学研究一部分的应用程序,我必须实施位置跟踪。参与研究的用户知道这一点,并愿意提供这些数据。此应用程序的两个前提是:

在用户移动时以尽可能高的精度跟踪其位置 使用尽可能少的电源,这样用户就不会觉得有必要关闭应用程序。在他们不使用应用程序时,请关闭应用程序的位置服务 我知道这两个要求通常是相互排斥的:所以一般的问题是,在这中间最好的策略是什么?

我的想法是,在位置不断变化的情况下,像往常一样以尽可能高的精度进行监控。如果我们检测到这些位置更新之间的差值在一定时间内几乎为0,我们将假设用户不再移动,并将切换到半径为40m的区域监控。一旦用户退出该区域,我们将切换回常规位置监视

所以有两个问题:

你能告诉我,对于在后台运行的应用程序,建议的方法是否有效吗? 您是否已经实现了类似的功能,并且知道它是否真的节省了大量电池电量? 问候,

塞巴斯蒂安

我的想法是,在位置不断变化的情况下,像往常一样以尽可能高的精度进行监控。如果我们检测到这些位置更新之间的差值在一定时间内几乎为0,我们将假设用户不再移动,并将切换到半径为40m的区域监控。一旦用户退出该区域,我们将切换回常规位置监视

使用区域监控重新启用位置监控有一些缺点:

如果您为用户的当前位置设置了一个区域,然后等待-didExitRegion触发,则您依赖于系统的默认半径缓冲,可能是200米,有时可能是在用户越过边界20秒后,您才能收到消息。如果准确度是您的主要目标,那么您可能会在区域监控开始和跨出区域之间丢失大量数据点。这符合你的需要吗

因此,要回答您的问题:

你能告诉我,对于在后台运行的应用程序,建议的方法是否有效吗

在后台运行这种类型的东西应该不会有任何问题。当应用程序处于后台时,位置监视和区域监视都可以工作,前提是您已将其设置为这样做。此外,确保在iOS 7上进行区域监控。这让我大吃一惊

您是否已经实现了类似的功能,并且知道它是否真的节省了大量电池电量

根据我们的经验,电池的节省并不明显。区域监控可能是一个电池消耗,它与高精度位置更新一样重要,因为它使用各种硬件来完成它的工作。所以选择你的毒药。苹果公司关于节约电池的建议是,而且一直以来都是使用“重大变化位置”服务。它为您提供了良好的位置数据,但并不经常提供