我正在使用CMStepCounter
和CMMotionActivityManager
。
我想做的是计算出我一天中的总步行时间,以及由此得出的平均速度。
但是,查看CMMotionActivityManager
中的数据,很明显,一天中的许多步数实际上是在"未知活动"期间记录的,而不是步行或跑步。这确实是有道理的,因为您需要执行一些步骤才能让iOS知道您正在行走。但是,这些在任何一天中都会加起来。
查询CMMotionActivity
,可以获取每个事件的时间戳。但是,虽然我很清楚每一步都必须以CMStepCounter
时间戳,但我只能看到一种返回两个时间点之间总步骤数的方法。如果我能返回每个步骤的数组及其时间戳,那就太好了,如果是这样,如何返回?
非常感谢。
使用当前的核心运动 API,您无法直接获取每个步骤及其时间戳的数组。
但是您可以使用queryActivityStartingFromDate:toDate:toQueue:withHandler:
来获取CMMotionActivity
对象的数组。然后使用时间戳通过调用 queryStepCountStartingFrom:to:toQueue:withHandler:
来计算步数。
我不认为 M7 处理器会用自己的时间戳存储每一步。如果将1
作为stepCounts
传递给方法 startStepCountingUpdatesToQueue:updateOn:withHandler:
,您会注意到处理程序并非在每个步骤中都执行。就像文档所说:每次超过步骤计数阈值时,都会尽最大努力执行处理程序块。