我正在使用CMStepCounter
和CMMotionActivityManager
。
我想做的是全天计算出我的总步行时间,从而得出我的平均速度。
然而,查看CMMotionActivityManager
中的数据,很明显,在“未知活动”且没有行走或跑步的时段内,实际记录了全天的一些步骤。这确实很有意义,因为你需要为iOS做一些步骤才能知道你正在走路。但是,这些都会在任何一天的过程中累积起来。
查询CMMotionActivity
,可以获取每个事件的时间戳。但是,虽然我很清楚每个步骤都必须在CMStepCounter
中加上时间戳,但我只能看到一种方法来返回两个时间点之间的总步数。如果我能用时间戳返回每个步骤的数组,那将是多么伟大的事情,如果是这样,怎么样?
非常感谢。
答案 0 :(得分:1)
使用当前的Core Motion API,您无法直接获得包含其时间戳的每个步骤的数组。
但您可以使用queryActivityStartingFromDate:toDate:toQueue:withHandler:
来获取CMMotionActivity
个对象的数组。然后使用时间戳通过调用queryStepCountStartingFrom:to:toQueue:withHandler:
来计算步数。
我不认为M7处理器存储每个步骤都有自己的时间戳。如果您将1
作为stepCounts
传递给方法startStepCountingUpdatesToQueue:updateOn:withHandler:
,您会注意到每个步骤都没有执行处理程序。就像文档说的那样:每次超过步数阈值时,都会尽力执行处理程序块。