简介:
很多app都实现了计步这个功能,现在的人们对健康关注度越来越高,所以说来简单写了一个计步功能的demo
实现方式:
1.CMStepCounter
我们在iOS7中可以用CMStepCounter获取步数,但是在iOS8这个就过时了
+ (BOOL)isStepCountingAvailable;//判断步数统计是否有效
- (void)queryStepCountStartingFrom:(NSDate *)start to:(NSDate *)end toQueue:(NSOperationQueue *)queue withHandler:(CMStepQueryHandler)handler;根据开始和结束时间查询步数
- (void)startStepCountingUpdatesToQueue:(NSOperationQueue *)queue updateOn:(NSInteger)stepCounts withHandler:(CMStepUpdateHandler)handler;开始断监测步数变化
- (void)stopStepCountingUpdates;停止监测步数变化
2.CMPedometer
在iOS8及其以上系统中,我们可以使用CMPedometer类获取行走相关信息。其中包括步数、距离、上楼、下楼、当前速度等等
+ (BOOL)isStepCountingAvailable;判断计步器是否可以使用
+ (BOOL)isDistanceAvailable;判断是否可以获取距离
+ (BOOL)isFloorCountingAvailable;当前是否可以获取上下楼层数
+ (BOOL)isPaceAvailable;当前是否可以获取速(s/m)
+ (BOOL)isCadenceAvailable;当前是否可以获取节奏
- (void)queryPedometerDataFromDate:(NSDate )start toDate:(NSDate )end withHandler:(CMPedometerHandler)handler;根据开始和结束时间查询行走相关信息
- (void)startPedometerUpdatesFromDate:(NSDate *)start withHandler:(CMPedometerHandler)handler;从某一时刻开始监测步数变化
- (void)stopPedometerUpdates;停止监测步数变化
代码及简单实现思路:
1.导入#import <CoreMotion/CoreMotion.h>
2.判断计步器是否可以使用
3. 创建计步器
4. 开始计步
注意:如果写在viewDidLoad. 先走了计步的方法, 然后才授权, 不可能获取数据,此外我们需要在Info.plist中添加key- Privacy - Motion Usage Description,否则会崩溃
最后-->(代码思路,如果有相同之处,不是故意为之)以下是demo地址:demo