iOS 10:如何使用 CallKit/CXCallObserver 获取呼叫事件?

W.v*_*nus 7 objective-c ios10 callkit

我在 iOS 10 中使用 CXCallObserver 更改了 CTCallCenter。

这是我的代码:

#import <CallKit/CXCallObserver.h>
#import <CallKit/CXCall.h>

-(void)viewDidLoad {

    CXCallObserver *callObserver = [[CXCallObserver alloc] init];
    [callObserver setDelegate:self queue:nil];

    ... ...
}

- (void)callObserver:(CXCallObserver *)callObserver callChanged:(CXCall *)call {
    if (call.hasConnected) {
        NSLog(@"********** voice call connected **********/n");        
    } else if(call.hasEnded) {
        NSLog(@"********** voice call disconnected **********/n");        
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我无法收到语音呼叫事件,并且收到了如下警告:

Sending 'HomeViewController *const __strong' to parameter of incompatible type 'id<CXCallObserverDelegate> _Nullable
Run Code Online (Sandbox Code Playgroud)

请帮我。

小智 3

您错过了 CXCallObserverDelegate。

@interface HomeViewController : UIViewController <CXCallObserverDelegate>

@end
Run Code Online (Sandbox Code Playgroud)

然后警告就会消失,并且您会收到语音呼叫事件。我希望这对你有帮助。