【问题标题】:CXCallObserver fires delegate method every time applicationDidBecomeActive is called?每次调用 applicationDidBecomeActive 时,CXCallObserver 都会触发委托方法?
【发布时间】:2017-05-17 05:06:46
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c call timing callkit


    【解决方案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)
        }
    }
    

    【讨论】:

    • 是的,你是对的。这就是我最终的做法(imgur.com/a/4Dgza)。有另一个 BOOL 变量,我可以用它来标记调用状态。
    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多