我正在寻找一种在企业应用程序处于后台时获取CTCallCenter事件的方法。我在这篇文章中看到了OhadM建议的解决方案:How to get a call event using CTCallCenter:setCallEventHandler: that occurred while the app was suspended?,但我无法在后台使用该应用程序。
我创建了一个新的单一视图应用程序,在appDelegate上添加了一个callCenter属性,并设置了callEventHandler,如帖子所示,并在下面列出。我还添加了Voice over IP和Background fetch Background Modes Capabilities,如上所述。
解决方案中是否有任何其他设置或代码可能有所帮助?我使用的是iOS 9.3.1和Xcode 7.3.1。
[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])
{
NSLog(@"Disconnected");
} else if ([call.callState isEqualToString: CTCallStateIncoming])
{
NSLog(@"Incomming");
}
}];