CMMotionManager不生成任何.deviceMotions

时间:2012-09-28 08:40:29

标签: iphone objective-c augmented-reality cmmotionmanager

我正在为我的公司开发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

2 个答案:

答案 0 :(得分:5)

在漫游之后,我们发现这是由于不常发生的硬件/固件错误。最明智的做法是检查motionManager.deviceMotion是否为Nil,并且motionManager.deviceMotionActive为true。

答案 1 :(得分:-1)

致电

[motionManager startDeviceMotionUpdatesUsingReferenceFrame:someFrame];

[motionManager startDeviceMotionUpdates];

通过读取deviceMotion属性来开始更新并定期访问CMDeviceMotion对象的方法。