首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ios“智能”位置跟踪器和电池耗尽

ios“智能”位置跟踪器和电池耗尽
EN

Stack Overflow用户
提问于 2014-06-30 19:56:24
回答 1查看 1.7K关注 0票数 2

我正在创建一个类似于“移动”应用程序的活动跟踪器,该应用程序旨在跟踪步数、距离、卡路里和活动时间。

对于Iphone5s+设备,我使用内置的M7芯片来确定步骤,然后根据这些步骤对其他设备进行估计。对于M7设备,我从不使用GPS。基本上没有电池漏,插值的数字是足够合理的需要。这样可以合理地获取步行/跑步数据。

然而,至少要支持Iphone5和Iphone4,我需要使用GPS定位,然后从距离内插步骤和卡路里。我遇到了严重的电池耗尽问题(有些期待),并正在寻求建议,如何尽量减少这一点。除了速度之外,我还使用了加速度计,以帮助对活动类型(步行、跑步、骑自行车、运输)进行有教养的猜测。

我尝试了一些GPS优化的方法:

  1. 延迟更新:Iphone5和最低版本的IOS支持此功能。这样做的代码是直截了当的,但是设备是否真的使用它是值得怀疑的。我只看到它在每4台设备中就有1台正常工作。3其他设备从未从同一代码中延迟更新。另一位用户建议其他应用程序可以阻止设备睡觉,包括当我安装了“移动”程序时。因此,这在理论之外没有多大帮助。
  2. 降低精度:降低连续位置轮询的准确性。我从高中开始,但后来减少到10米,然后是几百米等等。这似乎没有帮助,投票似乎仍然是在一个固定的间隔进行。
  3. startMonitoringSignificantLocationChanges:为了减少无休止的gps轮询,当用户一次不移动几个小时(尤其是在晚上)时,我从连续轮询切换到只有在设备停止移动2分钟之后才会发生重大变化。然后,在任何重要的位置更新之后,我重新启用连续跟踪。它的工作原理和预期差不多--如果它停止跟踪,那么电池耗尽速度就会减慢,当它继续工作时,电池耗尽会恢复。此外,如果用户开始步行,在一段时间内无法保证会发生重大的运动事件。这是非常差的准确性。有时,它似乎根本没有恢复。

相对来说,“移动”应用程序和其他应用程序能够很好地跟踪位置,这给我留下了相当深刻的印象。它可以持续一天的大部分时间,直到需要充电。根据我的代码,用户在几个小时内已经报告了完全的电池耗尽。

什么样的优化可以用来改善这一点,但仍然保持一个合理的精度跟踪运动?

startMonitoringSignificantLocationChanges. 进度更新:我设置了一个计时器,在2分钟的不活动(不移动)之后切换到重要的监视。正常的位置跟踪,然后在任何重大变化,或当应用程序在重新打开后变得活跃时,会再次恢复。这似乎很管用。我的手机仍然从100%到10%,在8小时内在周围坐着。这是一部旧iphone,有一些电池故障,但通常情况下,它可能只是失去30-40%的零充电一夜之间,没有运行的应用程序。我需要测试更多,但startMonitoringSignificantLocationChanges似乎仍然使用一些电池。

此外,startMonitoringSignificantLocationChanges在重新启动应用程序时会出现一些预期的准确性问题。在农村地区,它可以走几公里才能重新启动。长时间开车可能没问题,但如果我想步行30分钟,它可能会完全错过。在城市环境下,似乎会在移动2-3个街区内启动,这是合理的。

即使我使用连续位置跟踪计时器上的stopped+started来检查移动情况,在恢复连续日志记录之前,在重新启动之间可能仍然会有一分钟的延迟。

进度更新2

上面描述的重大更改更新对我来说有一个致命的缺陷:它们的启动速度并不总是足够快。有时它似乎要走1-2英里!

作为一种更好的方法,我尝试保持连续的位置更新,但当设备不移动时,将"desiredAccuracy“属性从高精度切换到低精度。这从本质上说应该是在不活动时关闭GPS接收器。我一直在试验100米到1公里的精确度,因为我没有动作,结果很有希望。它的使用似乎比仅仅使用重大更改监视稍微好一点,但它的响应性也更强。

EN

回答 1

Stack Overflow用户

发布于 2014-07-01 15:13:20

您以上提出的解决方案都不起作用。你需要全球定位系统,这是启用的,如果你要求完全精确(CLLocationAcuracyBest)。

如果我没记错的话,CLLocationAcuracyBest和CLLocationAcuracyBestForNavigation之间有一个不同之处,那就是后者除了使用加速度传感器外,还使用更多的电池。

没有半电池GPS模式!

是否启用了GPS芯片。

对于距离计数,你需要GPS,手机塔和无线局域网的位置将无法工作。只有无线局域网所在的蜂窝塔才能节省电池。

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

如果用户有应用程序的好处,8个小时就足够了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24497998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档