我正在尝试获取呼叫事件(呼叫接收,呼叫结束等) 我试图运行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");
}
};
}
答案 0 :(得分:1)
您可以检测呼叫事件。当各种事件发生时,您的应用程序委托将接收对各种UIApplicationDelegate
协议方法的调用。其中一个是- (void)applicationWillResignActive:(UIApplication *)
应用程序方法,它被调用来电或短信,但也可以出于其他原因调用。
只有当您的应用在前台运行时,才能检测到来电。
如果您的应用程序属于任何后台运行类别(VOIP,音频,位置跟踪或附件),您可以在后台使用CTCallCenter
。但请注意,如果你错过了使用后台运行模式的话,Apple会拒绝你的应用程序。
CTCallCenter
将允许您检测已启动或正在进行的任何呼叫。
但是,您将无法检测到有关该呼叫的任何详细信息,CTCall
识别该呼叫只会告诉您此状态。 CTCall
的callID只会为您提供呼叫的唯一标识符,但不会为您调用该号码。