【问题标题】:iOS CMStepCounter & CMMotionActivityManageriOS CMStepCounter & CMMotionActivityManager
【发布时间】:2014-02-05 15:32:39
【问题描述】:

我正在使用CMStepCounterCMMotionActivityManager

我想做的是计算出我全天的总步行时间,并由此计算出我的平均速度。

但是,查看CMMotionActivityManager 中的数据,很明显,一天中的许多步数实际上是在“未知活动”且没有步行或跑步的时间段内记录的。这确实是有道理的,因为您需要执行一些步骤才能让 iOS 知道您正在走路。然而,这些在任何一天的过程中都会累加。

查询CMMotionActivity,可以得到每个事件的时间戳。然而,虽然我很清楚每一步都必须在CMStepCounter 中加上时间戳,但我只能看到一种方法来返回两个时间点之间的总步数。如果我可以返回带有时间戳的每个步骤的数组,那将是很棒的,如果可以,如何?

非常感谢。

【问题讨论】:

    标签: ios core-motion cmmotionmanager apple-m7


    【解决方案1】:

    使用当前的 Core Motion API,您无法直接获取每个步骤及其时间戳的数组。

    但是您可以使用queryActivityStartingFromDate:toDate:toQueue:withHandler: 来获取CMMotionActivity 对象的数组。然后调用queryStepCountStartingFrom:to:toQueue:withHandler:,使用时间戳计算步数。

    我认为 M7 处理器不会使用自己的时间戳存储每个步骤。如果您将1 作为stepCounts 传递给方法startStepCountingUpdatesToQueue:updateOn:withHandler:,您会注意到处理程序并非在每一步都执行。正如文档所说:每次超过步数阈值时,都会尽最大努力执行处理程序块。

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 2013-11-15
      • 1970-01-01
      • 2014-06-07
      • 2014-06-15
      • 1970-01-01
      相关资源
      最近更新 更多