因为个人英语能力有限,对翻译的程度心知肚明。英文文档也非常简单,希望大家看原文。
由于不是土豪,没有设备是支持CMStepCounter的,利用升级后的4S也只是能尝试了一下 [CMStepCounter isStepCountingAvailable];所以Demo得等到苹果跟白菜一样价的时候,我才买得起了。
Overview
CMStepCounter 类提供访问用户携带设备步行的步数接口,步行信息通过内置硬件去采集和存储,让第三方可以通过查询数据来获知用户最近的身体运动情况。第三方可以通过这个类收集当前或任何历史的步行数据。
Tasks
步数计数可用性
开始和停止更新步数计数
返回布尔值,步数计数在当前设备是否支持
+ (BOOL)isStepCountingAvailable
YES 可用 or NO 不可用
步数计数并不是所有的iOS设备都支持,使用该方法可以知道当前设备是否支持该技术
iOS7.0 及以上系统支持
Declared In
CMStepCounter.h
收集并返回某一时间段内的历史步数数据
- (void)queryStepCountStartingFrom:(NSDate *)start to:(NSDate *)end toQueue:(NSOperationQueue *)queuewithHandler:(CMStepQueryHandler)handler
start
收集步数数据的开始时间,该参数不能为 nil.
end
收集步数数据的停止时间,该参数不能为nil.
queue
执行指定handler块的操作队列,第三方可以指定一个定制队列或者使用操作队列协助app的主线程。该参数不能为nil
handler
执行处理结果的块方法,该参数不能为nil。更多块方法信息参考CMStepQueryHandler。
Discussion
该方法为异步方法,会立即返回并且把结果分发到指定的handler块中处理。系统最多仅存储最近7天内的有效步数数据。如果在指定时间范围内没有数据,则会传递一个0值到handler块中。
iOS7.0 及以上系统支持
CMStepCounter.h
开始分发当前步数计数数据到第三方应用
- (void)startStepCountingUpdatesToQueue:(NSOperationQueue *)queue updateOn:(NSInteger)stepCounts withHandler:(CMStepUpdateHandler)handler
queue
被指定执行特定的handler块的操作队列。第三方可以指定一个定制队列或者使用操作队列协助app的主线程。该参数不能为nil
stepCounts
记录的步伐数据,达到该数值去执行handler块。该数值必须大于0
handler
该块在步伐计数达到或超出数值时会被执行,该参数不能为nil。更多块方法信息参考CMStepQueryHandler。
Discussion
该方法实现对用户步伐数据的追踪,并周期性地唤起块方法去分发结果。当第三方调用了该方法,步伐计数器会重置当前步伐数为0,并开始计数。每次计数到达指定的步伐数时,会执行指定的handler块方法。比如,当设定stepCounts为100时,会在100,200,300等数目时发送更新,激活该块方法。每次发送到该块方法的步伐数目都是从你调用该方法开始的步伐数目总和。
每次超过设定步数值时,指定的处理程序块handler会被执行。如果当超过设定值时第三方应用处在被挂起的状态,那程序块也不会被执行。当第三方应用被唤醒,程序块也不会执行,直到再次超过设定步数值。
可以调用stopStepCountingUpdates方法去停止分发步数计数,当然当步数计数对像被销毁的时候,分发过程也会被停止。
iOS7.0 及以上系统支持
CMStepCounter.h
停止分发步数计数数据到第三方应用。
- (void)stopStepCountingUpdates
调用该方法停止更新步数计数分发,该方法不能停止查询历史数据queryStepCountStartingFrom:to:toQueue:withHandler: 方法.
iOS7.0 及以上系统支持
CMStepCounter.h
返回查询操作的结果的程序块
typedef void (^CMStepQueryHandler)(NSInteger numberOfSteps, NSError *error);
This block takes two parameters:
numberOfSteps
指定时间段内的步数
error
错误信息对象,如果正确为nil
iOS7.0 及以上系统支持
CMStepCounter.h
返回从计数开始到现在的步数,会被周期性调用
typedef void (^CMStepUpdateHandler)(NSInteger numberOfSteps, NSDate *timestamp, NSError *error);
This block takes the following parameters:
numberOfSteps
步伐总数
timestamp
当前时间
error
错误信息对像,正确为nil
Availability
iOS7.0 及以上系统支持
CMStepCounter.h