ios - Callkit 可以与非 voip 调用一起使用以获取 ios 中的调用状态吗?

标签 ios swift core-telephony callkit

我已经阅读了有关调用非 voip 电话的问题,似乎只有打开 url 才能做到这一点。由于 CoreTelephony 已被弃用,是否可以使用 Callkit 在使用开放 url 进行调用时获取调用状态?如果没有,有没有办法以编程方式获取调用状态?我正在开发一个内部应用程序。

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

提前致谢!!

最佳答案

要在 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")
        }
    }
}

关于ios - Callkit 可以与非 voip 调用一起使用以获取 ios 中的调用状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42557701/

相关文章:

ios - 乱序调用的 SQLite3 库例程

ios - 带有 NSFetchedResultsController 的 UITableView 不会第二次加载

ios - 使 UILabel 很好地适合 Collection View Cell

ios - 如何模拟 NSUbiquitousKeyValueStore 进行单元测试?

ios - 来自 Swift 中服务器的公钥字符串的 Seckey

ios - CoreTelephony - 处于飞行模式时的运营商名称

ios - 来电通知 iOS

ios - UICollectionView 委托(delegate)方法 "didSelectItemAtIndexPath"在 UITableviewCell 中使用 UICollection View 时未调用

php - Swift - 来自 PHP 的推送通知

iPhone - 跟踪蜂窝数据使用情况