watchkit - 如何让 HKworkoutsession 始终成为活跃的锻炼类(class)

标签 watchkit apple-watch healthkit

我正在开发 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/

相关文章:

ios - 在 iOS 8 中检测 Apple Watch

ios - 为什么我们不能在 Apple Watch Storyboard 中对一个界面 Controller 使用关系转场和 Action 转场(推送)?

ios - 支持 CMSensorRecorder 的设备

swift - 锻炼构建器和锻炼构建器DidCollectEvent从未被调用

apple-watch - Apple Watch 事件应用程序 API

javascript - 如何从 Watchkit 传递 NSURL -> Native Cordova app & open browser with Javascript

ios - WatchKit SF 等宽数字

swiftui - 有没有办法在 SwiftUI 中创建 WKExtendedRuntimeSession 的新 session ?

swift - 所有 WatchKit 应用程序在真实设备上启动时都会崩溃 - 'warning: could not execute support code to read Objective-C class data'

ios - 如何撤销 HealthKit 授权