簡介:
很多app都實現(xiàn)了計步這個功能,現(xiàn)在的人們對健康關(guān)注度越來越高,所以說來簡單寫了一個計步功能的demo
實現(xiàn)方式:
1.CMStepCounter
我們在iOS7中可以用CMStepCounter獲取步數(shù),但是在iOS8這個就過時了
+ (BOOL)isStepCountingAvailable;//判斷步數(shù)統(tǒng)計是否有效
- (void)queryStepCountStartingFrom:(NSDate *)start to:(NSDate *)end? toQueue:(NSOperationQueue *)queue withHandler:(CMStepQueryHandler)handler;根據(jù)開始和結(jié)束時間查詢步數(shù)
- (void)startStepCountingUpdatesToQueue:(NSOperationQueue *)queue updateOn:(NSInteger)stepCounts withHandler:(CMStepUpdateHandler)handler;開始斷監(jiān)測步數(shù)變化
- (void)stopStepCountingUpdates;停止監(jiān)測步數(shù)變化
2.CMPedometer
在iOS8及其以上系統(tǒng)中,我們可以使用CMPedometer類獲取行走相關(guān)信息。其中包括步數(shù)、距離、上樓忘嫉、下樓显蝌、當前速度等等
+ (BOOL)isStepCountingAvailable;判斷計步器是否可以使用
+ (BOOL)isDistanceAvailable;判斷是否可以獲取距離
+ (BOOL)isFloorCountingAvailable;當前是否可以獲取上下樓層數(shù)
+ (BOOL)isPaceAvailable;當前是否可以獲取速(s/m)
+ (BOOL)isCadenceAvailable;當前是否可以獲取節(jié)奏
- (void)queryPedometerDataFromDate:(NSDate )start toDate:(NSDate )end withHandler:(CMPedometerHandler)handler;根據(jù)開始和結(jié)束時間查詢行走相關(guān)信息
- (void)startPedometerUpdatesFromDate:(NSDate *)start withHandler:(CMPedometerHandler)handler;從某一時刻開始監(jiān)測步數(shù)變化
- (void)stopPedometerUpdates;停止監(jiān)測步數(shù)變化
代碼及簡單實現(xiàn)思路:
1.導(dǎo)入#import <CoreMotion/CoreMotion.h>
2.判斷計步器是否可以使用
3. 創(chuàng)建計步器
4. 開始計步
注意:如果寫在viewDidLoad. 先走了計步的方法, 然后才授權(quán), 不可能獲取數(shù)據(jù),此外我們需要在Info.plist中添加key- Privacy - Motion Usage Description,否則會崩潰
最后-->(代碼思路,如果有相同之處,不是故意為之)以下是demo地址:demo