我正在创建一个类似于“移动”应用程序的活动跟踪器,该应用程序旨在跟踪步数、距离、卡路里和活动时间。
对于Iphone5s+设备,我使用内置的M7芯片来确定步骤,然后根据这些步骤对其他设备进行估计。对于M7设备,我从不使用GPS。基本上没有电池漏,插值的数字是足够合理的需要。这样可以合理地获取步行/跑步数据。
然而,至少要支持Iphone5和Iphone4,我需要使用GPS定位,然后从距离内插步骤和卡路里。我遇到了严重的电池耗尽问题(有些期待),并正在寻求建议,如何尽量减少这一点。除了速度之外,我还使用了加速度计,以帮助对活动类型(步行、跑步、骑自行车、运输)进行有教养的猜测。
我尝试了一些GPS优化的方法:
相对来说,“移动”应用程序和其他应用程序能够很好地跟踪位置,这给我留下了相当深刻的印象。它可以持续一天的大部分时间,直到需要充电。根据我的代码,用户在几个小时内已经报告了完全的电池耗尽。
什么样的优化可以用来改善这一点,但仍然保持一个合理的精度跟踪运动?
startMonitoringSignificantLocationChanges. 进度更新:我设置了一个计时器,在2分钟的不活动(不移动)之后切换到重要的监视。正常的位置跟踪,然后在任何重大变化,或当应用程序在重新打开后变得活跃时,会再次恢复。这似乎很管用。我的手机仍然从100%到10%,在8小时内在周围坐着。这是一部旧iphone,有一些电池故障,但通常情况下,它可能只是失去30-40%的零充电一夜之间,没有运行的应用程序。我需要测试更多,但startMonitoringSignificantLocationChanges似乎仍然使用一些电池。
此外,startMonitoringSignificantLocationChanges在重新启动应用程序时会出现一些预期的准确性问题。在农村地区,它可以走几公里才能重新启动。长时间开车可能没问题,但如果我想步行30分钟,它可能会完全错过。在城市环境下,似乎会在移动2-3个街区内启动,这是合理的。
即使我使用连续位置跟踪计时器上的stopped+started来检查移动情况,在恢复连续日志记录之前,在重新启动之间可能仍然会有一分钟的延迟。
进度更新2
上面描述的重大更改更新对我来说有一个致命的缺陷:它们的启动速度并不总是足够快。有时它似乎要走1-2英里!
作为一种更好的方法,我尝试保持连续的位置更新,但当设备不移动时,将"desiredAccuracy“属性从高精度切换到低精度。这从本质上说应该是在不活动时关闭GPS接收器。我一直在试验100米到1公里的精确度,因为我没有动作,结果很有希望。它的使用似乎比仅仅使用重大更改监视稍微好一点,但它的响应性也更强。
发布于 2014-07-01 15:13:20
您以上提出的解决方案都不起作用。你需要全球定位系统,这是启用的,如果你要求完全精确(CLLocationAcuracyBest)。
如果我没记错的话,CLLocationAcuracyBest和CLLocationAcuracyBestForNavigation之间有一个不同之处,那就是后者除了使用加速度传感器外,还使用更多的电池。
没有半电池GPS模式!
是否启用了GPS芯片。
对于距离计数,你需要GPS,手机塔和无线局域网的位置将无法工作。只有无线局域网所在的蜂窝塔才能节省电池。
在Iphone4上,这样一个完全精确的GPS应用程序(例如,我)持续大约8小时,直到电池电量不足为止。
如果用户有应用程序的好处,8个小时就足够了。
https://stackoverflow.com/questions/24497998
复制相似问题