HealthKit
什么是HealthKit
- HealthKit提供了一個結構,應用可以使用它來分享健康和健身數據。HealthKit管理從不同來源獲得的數據,并根據用戶的偏好設置,自動將不同來源的所有數據合并起來。應用還可以獲取每個來源的原始數據,然后執行自己的數據合并。
HealthKit可以做什么
- HealthKit也可以直接與健康和健身設備一起工作。在iOS8.0中,系統可以自動將兼容的低功耗藍牙心率儀的數據直接保存在HealthKit存儲中。如果有M7運動協處理器,系統還可以自動導入計步數據。其他的設備和數據源必須要有配套的應用才可以獲取數據并保存在HealthKit中
HealthKit應用
-
HealthKit提供了一個應用來幫助管理用戶的健康數據。健康應用為用戶展示HealthKit的數據。用戶可以使用健康應用來查看、添加、刪除或者管理其全部的健康和健身數據。用戶還可以編輯每種數據類型的分享權限。
HealathKit
HealthKit的常見問題
HealthKit和健康應用在iPad和iPod上都不可用。HealthKit框架不能用于應用擴展。
HealthKit的數據不會保存在iCloud中,也不會在多設備間同步。這些數據只會保存在用戶的本地設備中。為了安全考慮,當設備沒有解鎖時,HealthKit存儲的數據是加密的。
個人感覺HealthKit這個框架幫我們把一些要查詢的信息封裝好了,我們只需要去查詢就好了,
HealthKit對象主要分為2類:
特征和樣本
特征對象代表一些基本不變的數據。包括用戶的生日、血型和生理性別。你的應用不能保存特征數
據。用戶必須通過健康應用來輸入或者修改這些數據。
樣本對象代表某個特定時間的數據.所有的樣本對象都是HKSample的子類。它們都有下列屬性
- Type。樣本類型。例如,這可能包括一個睡眠分析樣本、一個身高樣本或者一個計步樣本.
- Start date。樣本的開始時間。
- End date。樣本的結束時間。如果樣本代表時間中的某一刻,結束時間和開始時間相同。如果樣本代表一段時間內收集的數據,結束時間應該晚于開始時間
- 蘋果為我們提供了一些寫好的常量HealthKit常量參考
- 獲取步數分為兩步1.獲得權限 2.讀取步數
- 注意:所有HealthKit API的完成回調都在一個私有的后臺隊列中執行。所以在更新用戶界面或者修改一些只能在主線程中處理的資源之前,應該把這些數據傳回主線程。
單位的換算
- HealthKit使用 HKUnit 和 HKQuantity 類來支持單位。HKUnit 提供了單一單位的表示。它支持大部分的公制和英制單位,當然還包括基本單位和符合單位。基本單位代表單一的度量,例如米、磅或者秒。復合單位使用數學運算連接一個或多個基本單位,例如m/s或者lb/ft2。
- HKUnit 提供了便捷方法來創建HealthKit支持的所有基本單位。它還提供了構建復合單位需要的數學運算。最后,你還可以通過直接使用恰當的格式化的單位字符串來創建復合單位。可參考參見HKUnit Class Reference。