1

我正在为我的 Apple Watch 编写跑步锻炼应用程序,1 公里后,该应用程序测量心率并将其与特定值进行比较。之后,如果心率过高,将显示警报。

我的问题:

  • 是否可以在我的应用程序中测量特定点的心率并将其与特定值进行比较?
  • 如果不从 Healthkit 流式传输心率,这可能吗?
4

1 回答 1

1

当用户达到 1KM 时,您可以监控距离更新并使用HKSampleQuery获取最后的心率测量值。

let healthStore = HKHealthStore()
let heartrate = HKQuantityType.quantityType(forIdentifier:HKQuantityTypeIdentifier.heartRate)
let sort = [
    NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
]
let heartRateUnit = HKUnit(from: "count/min")

let sampleQuery = HKSampleQuery(sampleType: heartrate!, predicate: nil, limit: 1, sortDescriptors: sort, resultsHandler: {
    query, results, error in
    if let results = results as? [HKQuantitySample]
    {
        let sample = results[0] as HKQuantitySample
        let value = sample.quantity.doubleValue(for: heartRateUnit)
        print (value)

        let rate = results[0]
        print(rate)
    }
})

healthStore.execute(sampleQuery)
于 2016-11-15T10:57:58.683 回答