2012-10-04 3 views
4

IOS에서 가속도계를 사용하고 있으며 백그라운드 모드에서 실행하고 싶습니다. 앱이 백그라운드에서 실행될 때 가속도계를 계속 유지 IOS

는이 같은 CMMotionManager을 사용하려했지만 작동하지 않았다 :
CMMotionManager*manager= [[CMMotionManager alloc] init]; 
if(!manager.accelerometerAvailable) { 
    NSLog(@"Accelerometer not available"); 
} else { 
    manager.accelerometerUpdateInterval = 0.1; 
    NSOperationQueue *motionQueue = [[NSOperationQueue alloc] init]; 

    [manager startAccelerometerUpdatesToQueue: motionQueue withHandler: 
    ^(CMAccelerometerData *data, NSError *error) { 
     NSLog(@"Accelerometer data: %@", [data description]); 
    } 
    ]; 
} 

나는이 어떻게 할 수

? 확인

답변

1

되지 않음이 문제를 해결하지만, 문서에서 한 눈에 (http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html)는 말한다 :

"구현 장기 실행 배경 작업을 구현하기 위해 더 실행 시간이 필요한 작업의 경우

, 당신이 요청해야합니다 특정 권한이 일시 중단 그들의없이 백그라운드에서이를 실행하는 아이폰 OS에서 특정 응용 프로그램 유형은 백그라운드에서 실행이 허용됩니다. 사용자에게 청각 적 콘텐츠를 재생

  1. 앱은 동안 같은 음악 플레이어 응용 프로그램과 같은 배경,

  2. 인터넷 프로토콜 (VoIP)를 통해 음성을 지원하는 등 내비게이션 애플리케이션으로, 항상 자신의 위치에 대한 정보를

  3. 앱 사용자를 유지

  4. 앱 새로운 콘텐츠를 외부 액세서리에서 정기적으로 업데이트를받을

  5. 앱을 다운로드하고 처리 할 필요가 뉴스 가판대 응용

이러한 서비스를 구현하는 앱은 지원하는 서비스를 선언하고 해당 서비스의 관련 측면을 구현하기 위해 시스템 프레임 워크를 사용해야합니다. 서비스를 선언하면 시스템에서 어떤 서비스를 사용하는지 알 수 있지만 경우에 따라 실제로 응용 프로그램이 일시 중지되는 것을 막는 시스템 프레임 워크입니다. "가속도계를 사용하여 (블루투스 장치와 통신 할 것인가?) 그렇다면 앱에서 지원하는 서비스를 선언해야합니다.이를 수행하려면 Info.plist에 UIBackgroundModes 키를 추가 한 다음 사용하려고하는 서비스에 대한 관련 문자열이 포함 된 배열입니다. 문자열의 전체 목록은 위의 링크 된 docs 페이지를 참조하십시오.

이 아닌 경우에 가속도계를 사용하려고합니다. 그 중 하나를해라. 행운이 아닐 수도 있습니다. 비록 내가 거기에서 틀리게되고 싶지만 .. (누구?)

관련 문제