是否有适用于 Apple Watch Kit 传感器(例如加速度计、心率监测器、触觉传感器)的 API?
我如何访问这些传感器?
最佳答案
WatchOS 2.0 的 Watchkit
中现已提供传感器数据(加速度计、心率监测器、触觉传感器)信息。
您可以在接下来的总共30分钟的演示中查看这些信息。如果您不想观看整个 session ,那么您可以直接跳到CoreMotion
和HealthKit
22-28 分钟之间的功能:
WatchKit for watchOS 2.0 Session in WWDC 2015
心率代码
加速度计代码
这是 WatchKit Extension 中加速度计的实现,我在 Watch Storyboard 上添加了三个标签(LabelX
、LabelY
和 LabelZ
) 。
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()
}
}
关于iphone - 有 WatchKit 传感器 API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28716834/