- (void)startStepCountingUpdatesToQueue:(NSOperationQueue *)queue updateOn:(NSInteger)stepCounts withHandler:(CMStepUpdateHandler)handler;
该方法的第一个参数需要一个NSOperationQueue对象,第二个参数指定用户每行行走多少步才执行第三个代码块参数一次。比如将第二个参数指定为100,则表明用户行走200、300、400…步时踩执行第三个代码块参数。第三个参数是一个形如^^(NSInteger numberOfSteps,NSDate *timestamp,NSError *error){}代码块,该代码块中的numberOfSteps参数代表用户当前行走的步数;
②、
- (void)stopStepCountingUpdates;
程序停止计步;
③、
- (void)queryStepCountStartingFrom:(NSDate *)start to:(NSDate *)end toQueue:(NSOperationQueue *)queue withHandler:(CMStepQueryHandler)handler;
如果程序希望通过CMStepCounter查询历史数据,则可调用该方法;该方法的前两个参数用于指定获取哪一个时间段的步数信息。
注意:iOS 8用 CMPedometer代替。
iOS 8新增的CMPedometer代替iOS 7的CMStepCounter作为计步器,该计步器可以获取用户携带该设备行走的步数。该类包含如下几个方法:
①、
+ (BOOL)isStepCountingAvailable;
该方法跟CMStepCounter一样,判断计步服务是否可用;
②、
+ (BOOL)isDistanceAvailable;
判断计算距离是否可用;
③、
+ (BOOL)isFloorCountingAvailable;
判断计算层楼测量是否可用;
④、
- (void)startPedometerUpdatesFromDate:(NSDate *)start withHandler:(CMPedometerHandler)handler;
该方法进行实时测量,第一个参数是指进行实时测量的开始时间;第二个参数是block ^(CMPedometerData *pedometerData, NSError *error);其中pedometerData为测量数据,error为测量错误信息。
⑤、
- (void)stopPedometerUpdates;
停止计步服务;
⑥、
- (void)queryPedometerDataFromDate:(NSDate *)start toDate:(NSDate *)end withHandler:(CMPedometerHandler)handler;
第一个参数为开始时间;第二个参数为结束时间;第三个参数为block^(CMPedometerData *pedometerData, NSError *error);其中pedometerData为测量数据,error为测量错误信息。
测量数据:CMPedometerData属性如下:
①、