Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 有没有办法用CallKit接听电话?_Ios_Swift_Callkit - Fatal编程技术网

Ios 有没有办法用CallKit接听电话?

Ios 有没有办法用CallKit接听电话?,ios,swift,callkit,Ios,Swift,Callkit,我正在开发一款免提可编程设备的应用程序,用于更改音乐和接听电话。我读到的所有东西都说这是不可能的,但我想我应该问问,看看CallKit现在是否有变化 我可以使用CXCallObserverDelegate查看呼叫事件,但无法使用CXAnswerCallAction接听电话 这是我当前的代码,我使用延迟进行测试。最终,该动作将由BLE设备的动作触发: self.currentCallUUID = call.uuid if let callUUID = self.c

我正在开发一款免提可编程设备的应用程序,用于更改音乐和接听电话。我读到的所有东西都说这是不可能的,但我想我应该问问,看看CallKit现在是否有变化

我可以使用CXCallObserverDelegate查看呼叫事件,但无法使用CXAnswerCallAction接听电话

这是我当前的代码,我使用延迟进行测试。最终,该动作将由BLE设备的动作触发:

        self.currentCallUUID = call.uuid

        if let callUUID = self.currentCallUUID
        {
            let answerAction: CXAnswerCallAction = CXAnswerCallAction(call: callUUID)
            let transaction: CXTransaction = CXTransaction(action: answerAction)
            let when = DispatchTime.now() + 2

            DispatchQueue.main.asyncAfter(deadline: when) {
                print("answering call")
                self.callController.request(transaction, completion: { error in
                    if (error != nil)
                    {
                        print("did answer")
                        answerAction.fulfill()
                    }
                    else
                    {
                        print("answer failed: \(String(describing: error?.localizedDescription))")
                    }
                })
            }
        }

你不能用BLE做这件事。您需要您的设备使用传统蓝牙免提模式SiriKit是否有办法做到这一点?我从来没有和sirikit合作过,但我想我会问的。编辑:看起来它也只适用于VOIP。哦,我试过了,谢谢@Paulw11