我正在创建一个类似于" Moves"的活动跟踪器。寻求跟踪步数,距离,卡路里和活动时间的应用程序。
对于Iphone5s +设备,我使用内置的M7芯片来确定步骤,然后从中进行估算。对于M7设备,我从不使用GPS。基本上没有电池消耗,并且内插数字足够合理以满足需要。这样可以合理地获得行走/跑步数据。
然而,为了至少支持Iphone5和Iphone4,我需要使用GPS来获取位置,然后从远处插入步数和卡路里。我遇到了大量的电池消耗问题(有些预期),我正在寻求如何最大限度地减少这种情况的建议。除了速度之外,我还使用加速度计来帮助对活动类型(步行,跑步,骑自行车,运输)进行有根据的猜测
我尝试过GPS优化的一些事情:
我对#34; Moves"给我留下了相对深刻的印象。应用程序,以及其他能够通过可观的电池消耗跟踪位置。它需要一天的大部分时间才能收费。根据我的代码,用户报告在几个小时内完全耗尽电量。
可以使用哪种优化来改善这一点,但仍能保持合理的跟踪运动准确度?
进度更新: 的 startMonitoringSignificantLocationChanges 即可。我用一个定时器设置它,在2分钟不活动(不移动)后切换到重要的监控。然后,在任何重大更改或应用程序从重新打开时变为活动状态时,将再次恢复正常位置跟踪。这似乎运作良好。我的手机在一夜之间的8小时内仍然可以从100%上升到10%。这是一款老式iphone,有一些电池故障,但通常它可能会在没有应用程序运行的情况下一夜之间失去30-40%的电量。我需要测试更多,但startMonitoringSignificantLocationChanges似乎仍然使用一些电池。
此外,startMonitoringSignificantLocationChanges在重新启动应用程序时会出现一些预期的准确性问题。在乡村环境中,它可以在重新启动前走几公里。这对于长途驾驶来说可能没问题,但如果我想要赶上30分钟的步行,它可能会完全错过。在城市环境中,它似乎在2-3个运动区内开始,是合理的。
即使我使用连续位置跟踪停止+在计时器上启动以检查移动,我仍然可能在重新启动之间有一分钟的延迟,然后才能恢复连续记录。
PROGRESS UPDATE 2 :
上面描述的重大变化更新对我来说有一个致命的缺陷:他们总是不够快。有时看起来需要1-2英里!
作为一种更好的方法,我尝试保持连续的位置更新,但切换了所需的精确度"当设备不移动时,从高精度到低精度的属性。这应该基本上在不活动期间关闭GPS接收器。我已经在100米到1公里之间进行了不准确的实验,并且结果很有希望。它似乎比仅使用重要的变化监控稍微使用更多的电池,但它似乎也更具响应性。
答案 0 :(得分:2)
您提出的任何解决方案都不起作用。
你需要GPS,如果你精确地准确(CLLocationAcuracyBest
),那就启用了。
如果我记得正确,CLLocationAcuracyBest和CLLocationAcuracyBestForNavigation之间存在差异,后者使用additonaly加速度传感器,总计使用更多的电池。
没有半电池GPS模式!
是否启用GPS芯片。
对于距离计数,您需要GPS,单元格塔和Wlan位置将无法工作。 只有Wlan locationg的电池塔可以节省电池。
在Iphone4上,这样的全精度GPS应用程序(例如我的)持续约8小时,直到电池电量不足。
如果用户有应用程序的好处,8小时即可。