如何以编程方式检测 iOS 中的通话处于暂停状态?

How to detect programmatically that call is on hold in iOS?

是否可以在 iOS 中获取有关电话呼叫保留的任何事件或通知。 CTCallCenter 仅提供以下状态:

CTCallStateDialing
CTCallStateIncoming 
CTCallStateConnected
CTCallStateDisconnected

我们可以使用 CallKit Framework 来获取 Call Hold 事件。

我们需要符合 CXCallObserver Delegate

 [_callObserver setDelegate:self queue:nil];

其中 _callObserver 是我的 CXCallObserver 的实例 class

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
    if (call.isOnHold == true) {
        NSLog(@"Call is on hold");
        }
}