簡介:
很多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