Swift HealthKit触发心率样本

时间:2017-06-15 00:13:16

标签: swift apple-watch health-kit

我可以使用以下代码读取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()))
        }
    })

1 个答案:

答案 0 :(得分:2)

要从Apple Watch获取更频繁的心率数据,用户必须在手表上运行跟踪HKWorkoutSession的应用。如果您的应用有配对的watchOS应用程序来跟踪锻炼,您可以使用startWatchApp(with workoutConfiguration:completion:)从iPhone开始锻炼。