2013-10-15 2 views
0

Я пытаюсь получить события вызова (вызванный вызов, завершение вызова и т. Д.) Я попытался запустить образец кода CoreTelephonyDemo, но я не получаю никаких вызовов. Может ли кто-нибудь вести меня за то же самое.Вызов событий в iPhone

Я пробовал этот код в приложенииWillResignActive, но я не получаю никаких событий. Я что-то пропускаю или что-то не так? Пожалуйста, направляйте.

- (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 в фоновом режиме. Но имейте в виду, что Apple отклонит ваше приложение, если вы пропустите, используя фоновый режим работы для чего-то, для чего он не предназначен.

CTCallCenter позволит вам обнаружить любые запущенные или уже запущенные вызовы.

Однако вы не сможете обнаружить какую-либо детальную информацию о звонке, а CTCall, идентифицирующий звонок, сообщит вам только об этом состоянии. CallID CTCall просто даст вам уникальный идентификатор для вызова, но не номер вызываемого.