如何从 Swift 中的 Health Kit Sdk 中获取卡路里和心率?
Posted
技术标签:
【中文标题】如何从 Swift 中的 Health Kit Sdk 中获取卡路里和心率?【英文标题】:How to get the calories and heart rate from Health Kit Sdk in Swift? 【发布时间】:2016-11-22 10:51:31 【问题描述】:我正在创建一个健身健康应用程序,我必须在其中向用户显示来自 Health kit 的实时卡路里和他们的心率。我得到了权限。但我不知道如何获取卡路里和心率。
这里是代码的权限。
static let healthKitStore = HKHealthStore()
// MARK:- Health Kit Permissions :-
static func authorizeHealthKit()
// HKQuantityTypeIdentifierBodyMass - For Weight
var shareTypes = Set<HKSampleType>()
shareTypes.insert(HKSampleType.workoutType())
shareTypes.insert(HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!)
shareTypes.insert(HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDistanceWalkingRunning)!)
shareTypes.insert(HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned)!)
var readTypes = Set<HKObjectType>()
readTypes.insert(HKObjectType.workoutType())
readTypes.insert(HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!)
readTypes.insert(HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDistanceWalkingRunning)!)
readTypes.insert(HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned)!)
healthKitStore.requestAuthorizationToShareTypes(shareTypes, readTypes: readTypes) (success, error) -> Void in
if success
print("success")
else
print("failure")
if let error = error
print(error)
获得成功后,我需要卡路里和心率,我必须使用哪个功能或哪个代码。像 Fitbit APIs 返回数据还是有 Apple Api's 会返回数据?
【问题讨论】:
检查这个 - forums.developer.apple.com/thread/6153 【参考方案1】:检查此代码:
let tHeartRate = HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)
let tHeartRateQuery = HKSampleQuery(sampleType: tHeartRate!, predicate:.None, limit: 0, sortDescriptors: nil) query, results, error in
if results?.count > 0
var string:String = ""
for result in results as! [HKQuantitySample]
let HeartRate = result.quantity
string = "\(HeartRate)"
print(string)
self.healthKitStore.executeQuery(tHeartRateQuery)
【讨论】:
我必须在获得权限后调用此方法,我是对的 它将返回这样的数据 1.73333 count/s, 1.65 count/s, 2.48333 count/s。但是这种格式的心率应该是 98、81、103。 @MandeepSingh 从字符串中获取数值部分并乘以 60 得到格式(98,103,98 等)的结果,参考此链接获取数值部分***.com/questions/30342744/…以上是关于如何从 Swift 中的 Health Kit Sdk 中获取卡路里和心率?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Health Kit 断开 Health App 的源?
如何使用 Health Kit 断开 Health App 的源?