每次调用applicationDidBecomeActive时,CXCallObserver都会触发委托方法?

时间:2017-01-03 06:45:45

标签: ios objective-c call timing callkit

所以我想从我的应用程序中获取蜂窝电话的时间。一旦呼叫连接,我就会得到呼叫的开始时间,但是当呼叫结束时我也会执行开始时间块,这会覆盖我的callStartTime属性。传入呼叫也会发生同样的事情(您可以从附带的控制台日志屏幕截图中看到)。我正在使用telprompt://拨打电话并返回应用。这是一个错误吗?

call.hasConnected is called while ending cellular call

1 个答案:

答案 0 :(得分:1)

每当调用更改时调用CXCallObserver委托方法,并在调用连接时调用一次,然后在调用结束时调用/ { hasConnectedhasEnded属性应分别解释为“永远连接”和“永远已结束”。

因此,我建议使用如下逻辑:

if (call.hasConnected) {
    if (!call.hasEnded) {
        // record start time (unless start time has already been recorded)
    } else {
        // record end time (unless end time has already been recorded)
    }
}