我正在制作一个应用程序,通过获取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)
})