Callkit可以与非voip呼叫一起使用来获取ios中的呼叫状态吗?

时间:2017-03-02 14:11:24

标签: ios swift core-telephony callkit

我已经阅读了关于进行非voip调用的问题,似乎开放式网址是唯一的方法。由于不推荐使用CoreTelephony,是否可以在使用open url进行调用时使用Callkit来获取调用状态?如果没有,有没有办法以编程方式获得呼叫状态?我正在开发一个内部应用程序。

How can CallKit be used to make a non-voip call?

提前致谢!!

1 个答案:

答案 0 :(得分:9)

要在CallKit中获取呼叫状态,您可以在应用中使用CXCallObserver。

import CallKit

final class ProviderDelegate: NSObject, CXCallObserverDelegate { 
var callObserver: CXCallObserver!

func setupCallObserver(){
callObserver = CXCallObserver()
callObserver.setDelegate(self, queue: nil)
}

func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
        if call.hasEnded == true {
            print("CXCallState :Disconnected")
        }
        if call.isOutgoing == true && call.hasConnected == false {
            print("CXCallState :Dialing")
        }
        if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
            print("CXCallState :Incoming")
        }

        if call.hasConnected == true && call.hasEnded == false {
            print("CXCallState : Connected")
        }
    }
}