0

我正在尝试获取呼叫事件(收到呼叫、呼叫结束等) 我尝试运行 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");
        }
    };
}
4

1 回答 1

1

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

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

如果您的应用属于任何后台运行类别(VOIP、音频、位置跟踪或附件),您可能可以CTCallCenter在后台使用。但请注意,如果您错过将后台运行模式用于不适合的用途,Apple 将拒绝您的应用程序。

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

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

于 2013-10-15T14:21:03.670 回答