我正在为我的公司开发AR应用程序,它运行顺畅,除了大约十分之一的设备。 (所有iphone 4和4s,5.1.1 +)
当我们运行此代码时:
CMDeviceMotion *d = motionManager.deviceMotion;
if (d == nil && motionManager.deviceMotionActive && motionManager != nil) {
DLog(@"Device motion is active, but no device motion recieved");
}
我们在某些设备上获得了“设备运动处于活动状态,但未收到任何设备动作”的实体块,但它似乎完全随机。
如果motionManager.deviceMotionActive
为真且运动管理器存在,则.deviceMotion应返回CMDeviceMotion。但它只会返回零。
有谁知道可能导致这种情况的原因是什么?支票正在我的
中运行- (void)onDisplayLink:(id)sender
答案 0 :(得分:5)
在漫游之后,我们发现这是由于不常发生的硬件/固件错误。最明智的做法是检查motionManager.deviceMotion是否为Nil,并且motionManager.deviceMotionActive为true。
答案 1 :(得分:-1)
致电
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:someFrame];
或
[motionManager startDeviceMotionUpdates];
通过读取deviceMotion属性来开始更新并定期访问CMDeviceMotion对象的方法。