如何在 iOS 中使用 CallKit 终止应用程序时自动拒绝来电

问题描述 投票:0回答:0

我想在应用程序关闭时通过 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");
                    }
                }];
            }
        }
    });
}
ios objective-c callkit
© www.soinside.com 2019 - 2024. All rights reserved.