0

我正在尝试检索已完成的所有锻炼的心率以及锻炼的开始和停止时间,并将所有值作为时间或数量项目返回到我的 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)

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

4

1 回答 1

-2

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

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

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

于 2020-07-01T10:49:32.120 回答