簡體   English   中英

如何通過 callkit 在 iOS 上結束通話?

[英]How to end a phone call on iOS by callkit?

我想通過 callkit api 結束通話。 但是我得到了這個信息“com.apple.CallKit.error.requesttransaction error 4”。 我不知道為什么和發生了什么。 順便說一下,電話是真正的電話,而不是 VOIP 電話。

CallKit CXError.h CXErrorCodeRequestTransactionErrorUnknownCallUUID 4

准備,為com.apple.CallKit.error.requesttransaction error 1啟用 voip & 創建全局變量CXCallController *callController 在此處輸入圖片說明

首先,我使用CXCallObserver get call UUID

- (void)callObserver:(CXCallObserver *)callObserver callChanged: (CXCall *)call {
}

接着,我使用一些api結束電話並將其放入callObserver

    NSUUID *callUUID = call.UUID;
    CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:callUUID];
    CXTransaction *transaction = [[CXTransaction alloc] initWithAction:endaction];

    [self.callController requestTransaction:transaction completion:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"EndCallAction transaction request failed: %@", [error localizedDescription]);
        } else {
            NSLog(@"EndCallAction transaction request successful");
        }
    }];

最后,我明白了。 PS:UUID不為空 在此處輸入圖片說明

我已經參考了如何在 CallKit 中結束通話 但是沒有用。 我不知道。 請幫助或嘗試提供一些想法如何實現這一目標。 謝謝!

您只能使用 CallKit 來管理由您的應用程序建立的 VoIP 呼叫。 您無法從其他應用程序管理蜂窩電話或 VoIP 電話。

Apple 文檔似乎表明可以將電話呼叫置於保持狀態https://developer.apple.com/documentation/callkit/cxcall但這似乎對我不起作用。 如果它應該工作,它也應該適用於結束通話。

我也嘗試了上述方法,即使 CallObserver 從調用列表中提供了調用 UUID,它也顯示了上述錯誤。

但是想知道如果您有一個 VOIP 應用程序並且您正在使用現有的電話呼叫,並且您想保持/結束電話呼叫並接聽(您的 VOIP 應用程序的)來電,那么這將如何工作。

你必須通過傳遞 uuid 來調用下面的函數

func performEndCallAction(uuid: UUID) {

    let endCallAction = CXEndCallAction(call: uuid)
    let transaction = CXTransaction(action: endCallAction)

    callKitCallController.request(transaction) { error in
        if let error = error {
            NSLog("EndCallAction transaction request failed: \(error.localizedDescription).")
        } else {
            NSLog("EndCallAction transaction request successful")
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM