【问题标题】:How to get heart rate data from HealthKit for each workout如何从 HealthKit 获取每次锻炼的心率数据
【发布时间】:2019-07-08 12:46:31
【问题描述】:

我正在尝试检索已完成的所有锻炼的心率以及锻炼的开始和停止时间,并将所有值作为时间或数量项目返回到我的 JSON 结果中。我已经能够通过查询大于 0 的持续时间来获得所有锻炼,但现在我想获得这些额外信息。

        let workoutPredicate = HKQuery.predicateForWorkouts(with: .greaterThanOrEqualTo, duration: 1)

        let compound = NSCompoundPredicate(andPredicateWithSubpredicates:
            [workoutPredicate])

        let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate,
                                              ascending: true)

        let query = HKSampleQuery(
            sampleType: .workoutType(),
            predicate: compound,
            limit: 0,
            sortDescriptors: [sortDescriptor]) { query, samples, error in
                DispatchQueue.main.async {
                    guard let finalSamples = samples as? [HKWorkout] else {
                        result()
                        return
                    }
                    result(finalSamples.map { sample -> NSDictionary in
                        return ["duration" : sample.duration, "totalDistance": sample.totalDistance?.doubleValue(for: HKUnit.mile()) as Any, "totalEnergyBurned": sample.totalEnergyBurned?.doubleValue(for: HKUnit.kilocalorie()) as Any]
                    })
                }
        }
        HKHealthStore().execute(query)

我想获取锻炼和锻炼开始/结束时间的心率数据。

【问题讨论】:

    标签: ios swift healthkit hkhealthstore


    【解决方案1】:

    有点晚,但每次锻炼的开始和结束日期/时间应该很容易:

    print("started @: \(sample.startDate), ended @: \(sample.endDate)")
    

    您是否设法获得每次锻炼的心率(最小/最大/平均)?我也有兴趣得到这个并且似乎无法弄清楚这是否可能?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多