ios" smart"位置跟踪器和电池消耗

时间:2014-06-30 19:56:24

标签: ios gps location battery

我正在创建一个类似于" Moves"的活动跟踪器。寻求跟踪步数,距离,卡路里和活动时间的应用程序。

对于Iphone5s +设备,我使用内置的M7芯片来确定步骤,然后从中进行估算。对于M7设备,我从不使用GPS。基本上没有电池消耗,并且内插数字足够合理以满足需要。这样可以合理地获得行走/跑步数据。

然而,为了至少支持Iphone5和Iphone4,我需要使用GPS来获取位置,然后从远处插入步数和卡路里。我遇到了大量的电池消耗问题(有些预期),我正在寻求如何最大限度地减少这种情况的建议。除了速度之外,我还使用加速度计来帮助对活动类型(步行,跑步,骑自行车,运输)进行有根据的猜测

我尝试过GPS优化的一些事情:

  1. 延期更新:Iphone5和最低版本的IOS支持此功能。执行此操作的代码很简单,但是设备是否实际使用它是值得怀疑的。我只看到它在4个设备中的1个上工作,它经常发生。其他3个设备从未延迟过相同代码的更新。另一位用户建议其他应用程序阻止设备进入休眠状态,包括当我有" Moves"还装了。因此,这远远超出了理论的范围。
  2. 降低准确度:降低连续位置轮询的准确性。我从High开始,但减少到10米,然后减少到数百米等。这似乎没有帮助,并且无论如何似乎仍然定期进行轮询。
  3. startMonitoringSignificantLocationChanges :为了减少无休止的gps轮询,当用户一次不能移动几个小时(特别是在晚上)时,我会在设备停止后从连续轮询切换到重大更改移动任意2分钟。然后,我在任何重要的位置更新后重新启用连续跟踪。这几乎与预期一样 - 如果它停止跟踪,那么电池耗尽减慢,当它连续恢复时,电池消耗恢复。此外,如果用户开始行走,则在一段时间内不能保证显着的运动事件。这对于准确性来说非常差。有时它似乎根本没有恢复。
  4. 我对#34; Moves"给我留下了相对深刻的印象。应用程序,以及其他能够通过可观的电池消耗跟踪位置。它需要一天的大部分时间才能收费。根据我的代码,用户报告在几个小时内完全耗尽电量。

    可以使用哪种优化来改善这一点,但仍能保持合理的跟踪运动准确度?

    进度更新: startMonitoringSignificantLocationChanges 即可。我用一个定时器设置它,在2分钟不活动(不移动)后切换到重要的监控。然后,在任何重大更改或应用程序从重新打开时变为活动状态时,将再次恢复正常位置跟踪。这似乎运作良好。我的手机在一夜之间的8小时内仍然可以从100%上升到10%。这是一款老式iphone,有一些电池故障,但通常它可能会在没有应用程序运行的情况下一夜之间失去30-40%的电量。我需要测试更多,但startMonitoringSignificantLocationChanges似乎仍然使用一些电池。

    此外,startMonitoringSignificantLocationChanges在重新启动应用程序时会出现一些预期的准确性问题。在乡村环境中,它可以在重新启动前走几公里。这对于长途驾驶来说可能没问题,但如果我想要赶上30分钟的步行,它可能会完全错过。在城市环境中,它似乎在2-3个运动区内开始,是合理的。

    即使我使用连续位置跟踪停止+在计时器上启动以检查移动,我仍然可能在重新启动之间有一分钟的延迟,然后才能恢复连续记录。

    PROGRESS UPDATE 2

    上面描述的重大变化更新对我来说有一个致命的缺陷:他们总是不够快。有时看起来需要1-2英里!

    作为一种更好的方法,我尝试保持连续的位置更新,但切换了所需的精确度"当设备不移动时,从高精度到低精度的属性。这应该基本上在不活动期间关闭GPS接收器。我已经在100米到1公里之间进行了不准确的实验,并且结果很有希望。它似乎比仅使用重要的变化监控稍微使用更多的电池,但它似乎也更具响应性。

1 个答案:

答案 0 :(得分:2)

您提出的任何解决方案都不起作用。 你需要GPS,如果你精确地准确(CLLocationAcuracyBest),那就启用了。

如果我记得正确,CLLocationAcuracyBest和CLLocationAcuracyBestForNavigation之间存在差异,后者使用additonaly加速度传感器,总计使用更多的电池。

没有半电池GPS模式!
是否启用GPS芯片。

对于距离计数,您需要GPS,单元格塔和Wlan位置将无法工作。 只有Wlan locationg的电池塔可以节省电池。

在Iphone4上,这样的全精度GPS应用程序(例如我的)持续约8小时,直到电池电量不足。

如果用户有应用程序的好处,

8小时即可。