objective-c - CTCallCenter 已弃用。有什么选择?

标签 objective-c swift ios10 core-telephony callkit

我正在使用 CTCallCenter在我的项目中。现在它已被弃用,我想知道有什么替代方案?如何获取语音通话的事件?

最佳答案

这没有很好的记录,但我在 CTCallCenter 中发现了这一点公共(public)头文件:

"Replaced by <CallKit/CXCallObserver.h>"

因此,从 iOS 10 开始,您应该使用 CXCallObserver 新类 CallKit 检索有关事件调用的信息的框架:

CXCallObserver *callObserver = [[CXCallObserver alloc] init];

提供对象,符合 CXCallObserverDelegate 协议(protocol)和队列,您要在其上执行委托(delegate)回调:

// 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;

并在您的委托(delegate)对象上实现以下方法:

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

更多信息,您可以查看:

关于objective-c - CTCallCenter 已弃用。有什么选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39569937/

相关文章:

ios - 在 UIScrollView subview 中使用自动布局(以编程方式)

swift - 使用 NSLocalizedString 的通知服务扩展

ios - 由于使用 Xcode 9 的系统资源不足,无法启动设备

ios - TableView 填充行,但不填充内容

ios - SFSpeechRecognizer 是否需要互联网连接?

iOS json解析器错误

objective-c - 如何使用 pkyeck 的 Objective-C socket.IO 库执行 "socket.join"?

ios - 尽管设置了委托(delegate),但永远不会调用 heightForRowAtIndexPath

swift - 使导航栏透明后如何将其更改回半透明

swift - Mac 操作系统 : Show custom file size in finder attributes and get info without kernel