Apple Watch 中的陀螺仪和加速度计
Gyro and accelerometer in Apple Watch
我喜欢将 Apple Watch 的陀螺仪和加速度计数据流式传输到 IPhone 配对的应用程序(具有尽可能高的刷新率)。
没有接缝成为访问数据的 sdk?
没有。 WatchKit SDK 目前没有硬件访问权限。
传感器数据信息 现已在 Watchkit for watchOS 2.0
中可用。
你可以在后面一共30分钟的session里查看这个信息presentation.If你不想看完整个session就直接跳到CoreMotion
和HealthKit
22-28 分钟之间的功能:
WatchKit for watchOS 2.0 Session in WWDC 2015
这里是WatchKit Extension中的实现,这里是reference。
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()
}
}
我喜欢将 Apple Watch 的陀螺仪和加速度计数据流式传输到 IPhone 配对的应用程序(具有尽可能高的刷新率)。 没有接缝成为访问数据的 sdk?
没有。 WatchKit SDK 目前没有硬件访问权限。
传感器数据信息 现已在 Watchkit for watchOS 2.0
中可用。
你可以在后面一共30分钟的session里查看这个信息presentation.If你不想看完整个session就直接跳到CoreMotion
和HealthKit
22-28 分钟之间的功能:
WatchKit for watchOS 2.0 Session in WWDC 2015
这里是WatchKit Extension中的实现,这里是reference。
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()
}
}