CTCallCenter已过时,有什么替代品?

9

我在我的项目中使用CTCallCenter。现在它已经过时了,我想知道有哪些替代方法?如何获取语音通话的事件?

1个回答

15
这段内容文档不够详细,但在CTCallCenter公共头文件中找到了以下提及:

"被<CallKit/CXCallObserver.h>替换"

因此,从iOS 10开始,您应该使用新的CallKit框架的CXCallObserver类来检索有关活动通话的信息:
CXCallObserver *callObserver = [[CXCallObserver alloc] init];

提供遵循 CXCallObserverDelegate 协议和队列的对象,用于执行委托回调:
// If queue is nil, then callbacks will be performed on main queue
[callObserver setDelegate:self queue:nil];
// Don't forget to store reference to callObserver, to prevent it from being released
self.callObserver = callObserver;

请在您的代理对象上实现以下方法:

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
    if (call.hasConnected) {
        // perform necessary actions
    }
}

更多信息请查看以下内容:


1
对于Swift 3+用户,解决方案在这里https://dev59.com/fp_ha4cB1Zd3GeqP2KQ0#45469336 - Krishna Kumar Thakur
这个解决方案适用于前台应用程序状态,但不适用于后台状态,有没有后台状态的解决方案? - MrDEV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接