iOS 計(jì)步器開發(fā)

在微信運(yùn)動、QQ健康等泛濫的年代,我們公司也終于要搞一個計(jì)步器,特此記錄。

對于使用了M7或者M(jìn)8處理器的設(shè)備(iPhone5s、iPhone6、iPhone6 Plus、iPhone6s、iPhone6s Plus、),Core Motion框架支持了一些預(yù)置的motion動作,比如步數(shù)、爬樓還有移動類型(行走、騎行等等)。

所以計(jì)步器的開發(fā)其實(shí)很簡單,我們只需要用Core Motion框架就可以直接從設(shè)備讀取監(jiān)測了。當(dāng)然我們還可以用HealthKit進(jìn)行開發(fā),在這里我們不進(jìn)行詳細(xì)的介紹。

Core Motion中的CMStepCounter和CMPedometer是我們今天的重點(diǎn)。

CMPedometer


在iOS8及其以上系統(tǒng)中我們可以使用CMPedometer類獲取行走相關(guān)信息(步數(shù)、距離、上樓、下樓、當(dāng)前速度等)。

當(dāng)前設(shè)備是否可以獲取步數(shù)
+ (BOOL)isStepCountingAvailable;
當(dāng)前設(shè)備是否可以獲取距離
+ (BOOL)isDistanceAvailable;
當(dāng)前設(shè)備是否可以獲取上下樓層數(shù)
+ (BOOL)isFloorCountingAvailable;
當(dāng)前設(shè)備是否可以獲取速度(s/m)
+ (BOOL)isPaceAvailable
當(dāng)前設(shè)備是否可以獲取節(jié)奏
+ (BOOL)isCadenceAvailable
根據(jù)開始和結(jié)束時間查詢行走相關(guān)信息
- (void)queryPedometerDataFromDate:(NSDate *)start
toDate:(NSDate *)end
withHandler:(CMPedometerHandler)handler;
從某一時刻開始監(jiān)測步數(shù)變化
- (void)startPedometerUpdatesFromDate:(NSDate *)start
withHandler:(CMPedometerHandler)handler;
停止監(jiān)測步數(shù)變化
- (void)stopPedometerUpdates;

CMStepCounter


在iOS7中我們只能使用CMStepCounter類獲取步數(shù),并且僅能夠獲取步數(shù)。

判斷步數(shù)統(tǒng)計(jì)是否有效
+ (BOOL)isStepCountingAvailable;

根據(jù)開始和結(jié)束時間查詢步數(shù)
- (void)queryStepCountStartingFrom:(NSDate *)start
to:(NSDate *)end
toQueue:(NSOperationQueue *)queue
withHandler:(CMStepQueryHandler)handler;

開始斷監(jiān)測步數(shù)變化
- (void)startStepCountingUpdatesToQueue:(NSOperationQueue *)queue
updateOn:(NSInteger)stepCounts
withHandler:(CMStepUpdateHandler)handler;

停止監(jiān)測步數(shù)變化
- (void)stopStepCountingUpdates;

總結(jié)


綜上我們可以看出CMPedometer類可以獲取的運(yùn)動信息更加詳細(xì)。而CMStepCounter類僅能夠獲取步數(shù)。我們在使用中需要判斷系統(tǒng)版本使用不同的類獲取行走信息。

我對CMPedometer 和CMStepCounter做了簡單封裝,使得你只需要一行代碼就可以獲取及監(jiān)測行走信息。 代碼奉上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容