2013-10-15 2 views
0

통화 이벤트 (전화 수신, 통화 종료 등)를 얻으려고합니다. CoreTelephonyDemo의 샘플 코드를 실행하려고했지만 통화 이벤트가 없습니다. 아무도 나를 똑같이 안내 할 수 있습니까?iPhone에서 이벤트 호출

이 코드를 applicationWillResignActive에서 시도했지만 이벤트가 발생하지 않습니다. 나는 무엇인가 놓치고 있거나 무엇인가 잘못하고 있냐? 안내해주십시오.

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    CTCallCenter *callCenter1 = [[CTCallCenter alloc] init]; 
    callCenter1.callEventHandler=^(CTCall* call) 
    { 
     if (call.callState == CTCallStateDisconnected) 
     { 
      NSLog(@"Call has been disconnected"); 
     } 
     else if (call.callState == CTCallStateConnected) 
     { 
      NSLog(@"Call has just been connected"); 
     } 
     else if(call.callState == CTCallStateConnected) 
     { 
      NSLog(@"Call is incoming"); 
     } 
     else 
     { 
      NSLog(@"None of the conditions"); 
     } 
    }; 
} 
+2

제한 사항에 대해 읽었습니까? 어떤 시나리오를 테스트하고 있습니까? – Wain

답변

1

통화 이벤트를 감지 할 수 있습니다. 응용 프로그램 대리인은 다양한 이벤트가 발생할 때 다양한 UIApplicationDelegate 프로토콜 메서드에 대한 호출을받습니다. 이 중 하나는 - (void)applicationWillResignActive:(UIApplication *) 응용 프로그램 방법으로, 들어오는 호출이나 텍스트 메시지에 대해 호출되지만 다른 이유로 호출 될 수도 있습니다.

앱이 포 그라운드에서 실행중인 경우에만 통화를 감지 할 수 있습니다.

앱이 백그라운드 실행 카테고리 (VOIP, AUDIO, 위치 추적 또는 액세서리)에 속하는 경우 백그라운드에서 CTCallCenter을 사용할 수 있습니다. 그러나 애플이 의도하지 않은 무언가를 위해 백그라운드 실행 모드를 사용하지 않으면 애플이 당신을 거부 할 것이라는 점에 유의하십시오.

CTCallCenter을 사용하면 시작되었거나 진행중인 통화를 감지 할 수 있습니다.

그러나 통화에 대한 세부 정보는 감지 할 수 없으므로 CTCall은 통화 상태를 알려줍니다. CTCall의 callID는 호출에 대한 고유 식별자를 제공하지만 호출되는 번호는 제공하지 않습니다.