我在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");
}
}
但我无法接听语音电话,我收到了这样的警告:
Sending 'HomeViewController *const __strong' to parameter of incompatible type 'id<CXCallObserverDelegate> _Nullable
请帮帮我。
答案 0 :(得分:3)
不要忘记存储对callObserver
的强引用,因此不会过早发布:
@interface YourClass ()<CXCallObserverDelegate>
@property (nonatomic, strong) CXCallObserver *callObserver;
@end
- (void)viewDidLoad {
[super viewDidLoad];
CXCallObserver *callObserver = [[CXCallObserver alloc] init];
[callObserver setDelegate:self queue:nil];
self.callObserver = callObserver;
}
有关详细信息,请查看this answer。
答案 1 :(得分:1)
你错过了CXCallObserverDelegate。
@interface HomeViewController : UIViewController <CXCallObserverDelegate>
@end
然后警告将消失,您将收到语音通话事件。 我希望这能帮到你。