我想在应用程序关闭时通过 CallKit 发送呼叫拒绝通知。以下代码在按钮执行时可以正常运行,但放在applicationWillTerminate方法中时,执行成功但无法拒绝调用。我想知道这可能是什么原因。
- (void)applicationWillTerminate:(UIApplication *)application {
[self endCall];
}
- (void)endCall {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
self.callController = [[CXCallController alloc] init];
if (self.callController.callObserver.calls.count > 0) {
CXCall *call = self.callController.callObserver.calls.lastObject;
if (call.hasConnected == NO) {
// 拒绝通话
CXEndCallAction *endAction = [[CXEndCallAction alloc] initWithCallUUID:[[SIMProviderManager sharedInstance] currentCallUUID]];
CXTransaction *transaction = [[CXTransaction alloc] initWithAction:endAction];
[self.callController requestTransaction:transaction completion:^(NSError * _Nullable error) {
if (error) {
NSLog(@"End call request transaction failed: %@", [error localizedDescription]);
} else {
NSLog(@"End call request transaction success");
}
}];
}
}
});
}