在iPhone中调用事件

我试图获取呼叫事件(呼叫接收,呼叫结束等)我试图运行CoreTelephonyDemo的示例代码,但我没有得到任何呼叫事件。 任何人都可以指导我这样做。

我在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"); } }; } 

您可以检测呼叫事件。 当各种事件发生时,您的应用程序委托将接收对各种UIApplicationDelegate协议方法的调用。 其中一个是- (void)applicationWillResignActive:(UIApplication *)应用程序方法,它被调用来电或短信,但也可以出于其他原因调用。

只有当您的应用程序在前台运行时,您才能检测到呼叫。

如果您的应用程序属于任何后台运行类别(VOIP,音频,位置跟踪或附件),您可以在后台使用CTCallCenter 。 但要注意,如果你错过了使用后台运行模式的东西,Apple会拒绝你的应用程序。

CTCallCenter将允许您检测已启动或正在进行的任何呼叫。

但是,您将无法检测到有关呼叫的任何详细信息,识别呼叫的CTCall只会告诉您此状态。 CTCall的CTCall只会为您提供呼叫的唯一标识符,但不会为您调用的号码。