iOS計步實現

要實現計步需要清楚的是iPhone5s、iPhone6、iPhone6 Plus、iPhone6s、iPhone6s Plus使用了M7或者M8處理器,所以可以輕易的實現計步器功能。

所以:5s以下的設備是不支持手機計步。(不過我在測試的時候5也是可以的)

一、HealthKit簡述:

HealthKit框架提供了一個結構,應用可以使用它來分享健康和健身數據。HealthKit管理從不同來源獲得的數據,并根據用戶的偏好設置,自動將不同來源的所有數據合并起來。應用還可以獲取每個來源的原始數據,然后執行自己的數據合并。

使用HealthKit特別注意

你的應用不應該將HealthKit收集的數據用于廣告或類似的服務。注意,在使用HealthKit框架應用中可以插播廣告,但是你不能使用HealthKit中的數據來服務廣告。

在沒有用戶的明確允許下,你不能向第三方展示任何HealthKit收集的數據。即使用戶允許,你也只能向提供健康或健身服務的第三方展示這些數據。

你不能將HealthKit收集的數據出售給廣告平臺、數據代理人或者信息經銷商。

如果用戶允許,你可以將HealthKit數據共享給第三方用于醫學研究。注意是用戶允許

你必須明確說明,你和你的應用會怎樣使用用戶的HealthKit數據。

二、使用Core Motion:外部使用CMPedometer或者CMStepCounter來讀取用戶的步數和走的里程。

需要注意的是,Core

Motion中的有兩種計步:CMStepCounter和CMPedomete。CMPedomete必須iOS8.0以上才可以使用,但是CMPedomete卻可以獲取更多的運動信息(步數、距離、上下樓層數、速度、節奏、開始和結束時間查詢行走相關信息、某一時刻開始監測步數變化),而CMStepCounter只能獲取步數。也有那種對兩種進行封裝的方法。

兩者的區別:

其實第一種Healthkit也是使用CMPedometer或CMStepCounter來讀入用戶的步數和走的里程的,只不過計算方法在手機內部。它是利用

iphone5s 以上的m處理器來獲取數據計算了,所以5s以下的設備是不支持 CMPedometer 手機計步的。

直接使用HealthKit計步會有缺點,計步不準,主要是因為HealthKit記錄的時區問題,iOS獲取時間的時區按中國的時區少了8個小時

最后上代碼(因為項目就只需要拿到步數即可,則使用的是CMStepCounter):

1.

2.

3.

4.

5.

2017.3.31 更新

在這里需要設置一下


希望可以給你一點幫助,以上。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容