首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreMotion陀螺仪苹果手表

CoreMotion陀螺仪苹果手表
EN

Stack Overflow用户
提问于 2017-03-07 22:34:00
回答 1查看 2.5K关注 0票数 3

我在试着拿到苹果手表的陀螺仪。据我所知,它在watchOS3中是可用的。不幸的是,我不能让它工作。它总是返回“陀螺仪不可用”,所以motionManager.isGyroAvailable总是假的。这是我的代码。任何帮助都将不胜感激。

代码语言:javascript
复制
import WatchKit
import Foundation
import CoreMotion



class InterfaceController: WKInterfaceController {

    let motionManager = CMMotionManager()

    override func awake(withContext context: Any?) {
    super.awake(withContext: context)

    motionManager.gyroUpdateInterval = 0.1

    motionManager.accelerometerUpdateInterval = 0.1
    // Configure interface objects here.
}

override func willActivate() {
    // This method is called when watch view controller is about to be visible to user
    super.willActivate()
    if (motionManager.isGyroAvailable == true) {
        motionManager.startGyroUpdates(to: OperationQueue.current!, withHandler: { (data, error) -> Void in
            guard let data = data else { return }
            let rotationX = data.rotationRate.x
            let rotationY = data.rotationRate.y
            let rotationZ = data.rotationRate.z
            // do you want to want to do with the data
            print(rotationX)
            print(rotationY)
            print(rotationZ)
        })
    } else {
        print("Gyro not available")
    }
EN

回答 1

Stack Overflow用户

发布于 2017-10-12 21:47:17

根据我的经验(尽管我在任何地方都找不到文档),手表上没有原始的陀螺仪数据,只有经过处理的数据。您可以使用CMMotionManager方法访问处理后的数据:

startDeviceMotionUpdates(to queue: OperationQueue, withHandler handler: @escaping CMDeviceMotionHandler)

处理程序中的CMDeviceMotion对象有详细的旋转数据,例如rotation rate,文档说明它是从陀螺仪中处理的数据。还有attitude data

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42650961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档