Tag: 核心电话

如何使用CTCallCenter获取呼叫事件:setCallEventHandler:应用程序被挂起时发生的事件?

CTCallCenter的文档:setCallEventHandler:声明: 但是,通话事件也可能在您的应用程序被暂停时发生。 它被暂停时,您的应用程序不会收到通话事件。 当您的应用程序恢复活动状态时,它会为每个改变状态的呼叫接收一个呼叫事件 这个问题的相关部分是 当您的应用程序恢复活动状态时,它会为每个改变状态的呼叫接收一个呼叫事件 暗示该应用程序将收到一个呼叫事件的过去发生的应用程序被暂停时发生。 根据这个问题的答案,这是可能的: Navita TEM应用程序如何获得通话logging信息? 我的问题是:如果我的应用程序被暂停,并且发生了一个调用,那么当我的应用程序恢复活动状态时,如何检索发生的调用事件? 我已经尝试了许多代码实验,但是当我的应用程序恢复到活动状态时,却无法检索到任何呼叫信息。 这是我尝试过的最简单的事情:1)使用Xcode单一视图应用程序模板创build一个新项目。 2)添加如下代码到didFinishLaunchingWithOptions 3)启动应用程序4)任务离开应用程序5)拨打另一个设备的电话,接听电话,挂断来自任一设备的呼叫6)将应用程序带回前台从而恢复活动状态。 注册通话事件的代码是: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.callCenter = [[CTCallCenter alloc] init]; [self.callCenter setCallEventHandler:^(CTCall *call) { NSLog(@"Event handler called"); if ([call.callState isEqualToString: CTCallStateConnected]) { NSLog(@"Connected"); } else if ([call.callState isEqualToString: CTCallStateDialing]) { NSLog(@"Dialing"); } else if ([call.callState isEqualToString: CTCallStateDisconnected]) { […]