iOS CMStepCounter & CMMotionActivityManager



我正在使用CMStepCounterCMMotionActivityManager

我想做的是计算出我一天中的总步行时间,以及由此得出的平均速度。

但是,查看CMMotionActivityManager中的数据,很明显,一天中的许多步数实际上是在"未知活动"期间记录的,而不是步行或跑步。这确实是有道理的,因为您需要执行一些步骤才能让iOS知道您正在行走。但是,这些在任何一天中都会加起来。

查询CMMotionActivity,可以获取每个事件的时间戳。但是,虽然我很清楚每一步都必须以CMStepCounter时间戳,但我只能看到一种返回两个时间点之间总步骤数的方法。如果我能返回每个步骤的数组及其时间戳,那就太好了,如果是这样,如何返回?

非常感谢。

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

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

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

相关内容

  • 没有找到相关文章

最新更新