我正在开发 Apple Watch 应用程序,并且正在使用 HKworkoutsession 访问心率数据样本。
在最新的 watchos2 beta3 发布错误中“在进行事件锻炼期间,屏幕关闭时不会生成新的心率样本。”是固定的。
我的问题是如何将我的 HKworkoutsession 始终设置为“主动锻炼 session ”,以便我可以根据需要不断获取心率样本。
谢谢
瑞安
最佳答案
以下代码是如何开始或停止锻炼 session 。
let healthStore = HKHealthStore()
healthStore.startWorkoutSession(workoutSession) {
(result: Bool, error: NSError?) -> Void in
}
healthStore.stopWorkoutSession(workoutSession) {
(result: Bool, error: NSError?) -> Void in
}
有 HKWorkoutSessionDelegate 通知其 session 状态。
protocol HKWorkoutSessionDelegate : NSObjectProtocol {
func workoutSession(workoutSession: HKWorkoutSession,
didChangeToState toState: HKWorkoutSessionState,
fromState: HKWorkoutSessionState, date: NSDate)
func workoutSession(workoutSession: HKWorkoutSession,
didFailWithError error: NSError)
}
[编辑] 2015/08/31
对象版本
HKWorkoutSession *workoutSession = [[HKWorkoutSession alloc] initWithActivityType:HKWorkoutActivityTypeRunning locationType:HKWorkoutSessionLocationTypeOutdoor];
workoutSession.delegate = self;
HKHealthStore *healthStore = [HKHealthStore new];
[healthStore startWorkoutSession:workoutSession];
[healthStore stopWorkoutSession:workoutSession];
HKWrorkoutSessionDelegate
- (void)workoutSession:(HKWorkoutSession *)workoutSession
didChangeToState:(HKWorkoutSessionState)toState
fromState:(HKWorkoutSessionState)fromState
date:(NSDate *)date;
- (void)workoutSession:(HKWorkoutSession *)workoutSession didFailWithError:(NSError *)error;
注意:最新版本的方法名称有所变化,观看 OS 2 beta 5。
stopWorkoutSession 已更改为 endWorkoutSession。
关于watchkit - 如何让 HKworkoutsession 始终成为活跃的锻炼类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413531/