8

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

2 回答 2

6

经过一番漫游,我们发现这是由于罕见的硬件/固件错误。最明智的做法是检查 motionManager.deviceMotion 是否为 Nil,以及 motionManager.deviceMotionActive 是否为真。

于 2012-11-07T13:48:33.733 回答
-2

调用

[motionManager startDeviceMotionUpdatesUsingReferenceFrame:someFrame];

或者

[motionManager startDeviceMotionUpdates];

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

于 2012-10-30T13:20:05.180 回答