2012-09-28 2 views
8

회사의 AR 응용 프로그램에서 작업중인 Im은 10 개 장치 중 하나를 제외하고 원활하게 작동합니다. 우리가이 코드를 실행하면 (모든 아이폰 4 및 4S, 5.1.1+)CMMotionManager에서 .deviceMotions을 생성하지 않습니다.

는 :

CMDeviceMotion *d = motionManager.deviceMotion; 

    if (d == nil && motionManager.deviceMotionActive && motionManager != nil) { 
     DLog(@"Device motion is active, but no device motion recieved"); 
    } 

을 우리는 몇 가지의 "장치의 움직임이 활성화되어 있지만 장치 모션 받았다 없다"의 단단한 블록을 얻을 장치,하지만 그것은 완전히 무작위로 보인다.

motionManager.deviceMotionActive이 true이고 동작 관리자가있는 경우 .deviceMotion은 CMDeviceMotion을 반환해야합니다. 하지만 그냥 반환합니다.

누구에게이 문제가 발생할 수있는 아이디어가 있습니까? 체크 내

- (void)onDisplayLink:(id)sender 
+0

도청 장치는 아이폰 4와 4s 모두에서 찾을 수 있습니다. –

+0

개체 메모리 할당/할당 해제를 시도 했습니까? 문제가있을 수 있습니다. 또한이 링크를 확인하십시오 : http://iphonedevsdk.com/forum/iphone-sdk-development/103541-cmdevicemotion-flick-gesture.html – iCreative

+0

블록 기반 방법을 사용할 때 같은 문제가 있습니까? – Jonathan

답변

5

일부 로밍을 한 후 드물게 하드웨어/펌웨어 오류가있는 것으로 나타났습니다. 가장 현명한 방법은 motionManager.deviceMotion이 Nil이고 motionManager.deviceMotionActive가 true인지 확인하는 것입니다.

+1

놀랍지 만. 또 다른 애플 버그. 죄송합니다. 그걸 듣고 너무 많은 시간을 낭비했습니다. – jww

+0

어떻게 해결 했습니까? 나는 똑같은 문제에 직면하고 있으며 무엇을해야할지 모른다. 나는 그것을 탐지하고 경고를 보여준다. 때때로 나침반 앱에 내장 된 센서를 보정하는 데 도움이되지만 때로는 ... – shelll

-1

전화에 업데이트를 시작하고 주기적으로 deviceMotion 속성을 읽어 CMDeviceMotion 개체에 액세스 할 수있는

[motionManager startDeviceMotionUpdatesUsingReferenceFrame:someFrame]; 

또는

[motionManager startDeviceMotionUpdates]; 

방법을 실행하고있다.

관련 문제