我能夠使用以下代碼從HealthKit讀取平均心率數據一段時間(鍛鍊持續時間)。Swift 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()))
}
})
您是否在進行測量之前開始了「HKWorkoutSession」? –
@DávidPásztor我沒有,一旦我開始它是好的,謝謝! – achen1217
@DávidPásztor我開始鍛鍊,但是當我打電話給結束時,似乎並沒有停止。 hr監視器繼續保持運行狀態,手錶應用程序保持在前臺。任何想法如何我可以阻止這一點? – achen1217