我可以使用以下代码读取HealthKit的一段时间(锻炼持续时间)的平均心率数据。
然而,当我查看Apple Health应用程序时,它显示Apple Watch的心率样本很少(每15-30分钟一次)。这使我在此期间的平均人力资源读数非常不准确。
如何触发HealthKit从手表中采集(采集)心率数据并将其写入HealthKit?
let endDate = (calendar as NSCalendar).date(byAdding: NSCalendar.Unit.minute, value: duration, to: startDate, options: NSCalendar.Options())
let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: HKQueryOptions())
let squery = HKStatisticsQuery(quantityType: heartRateType, quantitySamplePredicate: predicate, options: HKStatisticsOptions.discreteAverage, completionHandler: { (qurt, result, errval) -> Void in
guard errval == nil else { print("error"); completion(0.0, errval); return }
var averageHeartRate : Double = 0.0
if (result != nil && result!.averageQuantity() != nil) {
let quantity : HKQuantity = result!.averageQuantity()!
averageHeartRate = quantity.doubleValue(for: HKUnit.count().unitDivided(by: HKUnit.minute()))
}
})
答案 0 :(得分:2)
要从Apple Watch获取更频繁的心率数据,用户必须在手表上运行跟踪HKWorkoutSession
的应用。如果您的应用有配对的watchOS应用程序来跟踪锻炼,您可以使用startWatchApp(with workoutConfiguration:completion:)从iPhone开始锻炼。