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

CXCallObserver fires delegate method every time applicationDidBecomeActive is called?

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

只要调用发生变化,就会调用 CXCallObserver 委托方法,并且会在调用连接时调用一次,稍后 if/when 调用结束。 hasConnectedhasEnded 属性应分别解释为 "has ever connected" 和 "has ever ended"。

因此,我建议使用这样的逻辑:

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)
    }
}