Lew*_*s42 7 healthkit watchkit watchos-5
我正在使用HKLiveWorkoutBuilder
&HKWorkoutRouteBuilder
跟踪Apple Watch上的锻炼.
打电话时:
[workoutBuilder finishWorkoutWithCompletion:^(HKWorkout * _Nullable workout, NSError * _Nullable error) {
}];
Run Code Online (Sandbox Code Playgroud)
返回的workout
对象不包括用户行进的距离:
(lldb) po workout.totalDistance
nil
Run Code Online (Sandbox Code Playgroud)
但是路线保存正确.
鉴于这.totalDistance
是只读的,我应该如何在watchOS 5中设置锻炼的距离?
这里的答案有两个部分。
要让它在步行或跑步时工作,您可以使用以下代码:
workoutBuilder?.beginCollection(withStart: Date(), completion: { (success, error) in
guard success == true else {
#warning ("deal with failure")
return
}
workoutBuilder?.dataSource = HKLiveWorkoutDataSource(healthStore:self.healthStore, workoutConfiguration: self.workoutConfig)
// this is the important bit
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .heartRate)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, predicate: nil)
})
Run Code Online (Sandbox Code Playgroud)
您可以将其应用于游泳和滑雪。
目前无法使用锻炼生成器来获取其他类型的户外活动(例如划船)的距离。
--
如果您想复制和粘贴,雷达/反馈详细信息
反馈编号: FB5714600
标题:支持距离追踪,更多运动类型
身体:
目前实时锻炼生成器仅支持跟踪以下类型的距离: - 步行或跑步距离 - 滑雪 - 游泳
我看到两个选择。最好的办法是允许这样的事情:
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distancePaddling)!, predicate: nil)
Run Code Online (Sandbox Code Playgroud)
另一种选择是允许锻炼可变,以便可以追溯添加距离。
如果需要,我很乐意提供进一步的意见。我们的用户喜欢 Apple Watch,但令他们沮丧的是,他们无法在“健康”中存储划桨锻炼的距离。
归档时间: |
|
查看次数: |
447 次 |
最近记录: |