是否有WatchKit传感器API?

时间:2015-02-25 10:40:31

标签: iphone watchkit apple-watch

Apple Watch Kit传感器是否有可用的API,如加速度计,心率监测器,触觉传感器?

如何访问这些传感器?

2 个答案:

答案 0 :(得分:5)

Watchkit for watchOS 2.0中的传感器数据(加速度计,心率监测器,触觉传感器)信息现已可用

您可以在以下会话中查看此信息,总共30分钟的演示文稿。如果您不想观看整个会话,那么您可以直接跳转到所在的CoreMotionHealthKit功能22-28分钟之间:

WatchKit for watchOS 2.0 Session in WWDC 2015

心率代码

https://developer.apple.com/library/prerelease/watchos/documentation/HealthKit/Reference/HKWorkout_Class/

加速度计代码

以下是WatchKit Extension中Accelerometer的实现,我在手表故事板上添加了三个标签(LabelXLabelYLabelZ)。

import WatchKit
import Foundation
import CoreMotion

class InterfaceController: WKInterfaceController {


    @IBOutlet weak var labelX: WKInterfaceLabel!
    @IBOutlet weak var labelY: WKInterfaceLabel!
    @IBOutlet weak var labelZ: WKInterfaceLabel!
    let motionManager = CMMotionManager()


    override func awakeWithContext(context: AnyObject?) {
        super.awakeWithContext(context)

        motionManager.accelerometerUpdateInterval = 0.1
    }

    override func willActivate() {
        super.willActivate()

        if (motionManager.accelerometerAvailable == true) {
            let handler:CMAccelerometerHandler = {(data: CMAccelerometerData?, error: NSError?) -> Void in
                self.labelX.setText(String(format: "%.2f", data!.acceleration.x))
                self.labelY.setText(String(format: "%.2f", data!.acceleration.y))
                self.labelZ.setText(String(format: "%.2f", data!.acceleration.z))
            }
            motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: handler)
        }
        else {
            self.labelX.setText("not available")
            self.labelY.setText("not available")
            self.labelZ.setText("not available")
        }
    }

    override func didDeactivate() {
        super.didDeactivate()

        motionManager.stopAccelerometerUpdates()
    }
}

答案 1 :(得分:1)

当前版本的WatchKit SDK无法访问Apple Watch的任何传感器。