8

私は会社の AR アプリに取り組んでいますが、10 分の 1 程度のデバイスを除いて、スムーズに動作しています。(すべての 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");
    }

一部のデバイスで「デバイスの動きはアクティブですが、デバイスの動きが受信されていません」という堅実なブロックが表示されますが、完全にランダムに見えます。

が true で、モーション マネージャーが存在する場合motionManager.deviceMotionActive、.deviceMotion は CMDeviceMotion を返す必要があります。しかし、それは単に nil を返します。

誰がこれを引き起こす可能性があるか考えていますか? チェックは私の中で実行されています

- (void)onDisplayLink:(id)sender
4

2 に答える 2

6

いくつかローミングした後、これはまれなハードウェア/ファームウェア エラーが原因であることがわかりました。最も賢明な方法は、motionManager.deviceMotion が Nil であり、motionManager.deviceMotionActive が true であることを確認することでした。

于 2012-11-07T13:48:33.733 に答える
-2

電話する

[motionManager startDeviceMotionUpdatesUsingReferenceFrame:someFrame];

また

[motionManager startDeviceMotionUpdates];

deviceMotion プロパティを読み取って、更新を開始し、定期的に CMDeviceMotion オブジェクトにアクセスするメソッド。

于 2012-10-30T13:20:05.180 に答える