无法从加速计、陀螺仪和DeviceMotion获取值



我正在制作一个应用程序,通过获取iPhone的任何移动来跟踪你的睡眠。我到处搜索,有很多方法可以从中获取数据,但没有成功。这是我的密码。

func startManager() {
let manager = CMMotionManager()
manager.startAccelerometerUpdates()
let accelerometer = manager.accelerometerData
}

但manager.accelerometerData为零。我还在DeviceMotion、Gyro和UserAcceleration上尝试过,但都不起作用。我也试过这个。

print(manager.isAccelerometerActive)

它打印了false,所以我认为这是问题所在,但我仍然无法将其激活。

我尝试将let manager=CMMotionManager()放在顶部,但它仍然不起作用。

我尝试在ViewDidLoad中放入manager.startAcceleraterUpdates(),但仍然不起作用。

我还尝试了另一种方法,就是这样。

manager.startAccelerometerUpdates(to: OperationQueue.main) { (data : CMAccelerometerData, error : Error) in
print(data)
}

但它给了我一个错误,说我必须将添加为!CMAcceleratometerHandler,但在我添加后,它告诉我再次添加。

我想从加速度计中获得x、y和z 的原始值

(我进口CoreMotion)

我在XCode 8.2.1上使用Swift 3,并在iPhone 6s上进行测试。

Swift3中,您应该在处理程序中使用可选参数

motionManager.startAccelerometerUpdates(
to: OperationQueue.main , 
withHandler:{ (data : CMAccelerometerData?, error : Error?) in
print(data)
})

相关内容

  • 没有找到相关文章

最新更新