iphone - CMMotionManager 不产生任何 .deviceMotions

标签 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");
    }

我们在某些设备上看到了“设备运动处于事件状态,但未收到设备运动”的实心 block ,但它看起来完全是随机的。

如果 motionManager.deviceMotionActive 为真,并且运动管理器存在,.deviceMotion 应该返回一个 CMDeviceMotion。但它只返回零。

有谁知道是什么原因造成的?正在我的

中运行检查
- (void)onDisplayLink:(id)sender

最佳答案

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

关于iphone - CMMotionManager 不产生任何 .deviceMotions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636525/

相关文章:

IOS Collection View 从自定义单元类加载图像

objective-c - 在 Objective C 中画饼图

swift - 在 RealityKit 中将 UIImage 作为纹理添加到平面

android - 如何在 Android 中使用 Game Rotation Vector 中的数字?

iphone - UIAlertView 每次调用都会弹出三次,而不是一次

iphone - 在 UITableview 中自动向下和向上滚动

ios - 在旋转时移除 UIPageViewController 上的 pageIndicator

iphone - 解决 showFromTabBar 顶部 UITabBarController View 的正确方法

iphone - Lua 和一点多任务处理

android - 在增强现实应用程序中变换屏幕上的纬度、经度位置