Linphone SDK使用(四)关闭CallKit

2023-04-19  本文已影响0人  fanren

前言

LinphoneSDKCallKit默认是打开的;由于国内的限制,是不允许包含有CallKit的app上线;
所以我们需要把CallKit关闭;

一、关闭CallKit

@objc static func callKitEnabled() -> Bool {
    #if !targetEnvironment(simulator)
    if ConfigManager.instance().lpConfigBoolForKey(key: "use_callkit", section: "app") {
        return true
    }
    #endif
    return false
}

此处是根据配置文件里面的use_callkit来进行设置的,可以直接修改为false

    func setHeld(call: Call, hold: Bool) {
//      print("=======================\(hold)")
//      #if targetEnvironment(simulator)
        if (hold) {
            try?call.pause()
        } else {
            try?call.resume()
        }
//      #else
//      let callid = call.callLog?.callId ?? ""
//      let uuid = providerDelegate.uuids["\(callid)"]
//      if (uuid == nil) {
//          Log.directLog(BCTBX_LOG_ERROR, text: "Can not find correspondant call to set held.")
//          return
//      }
//      let setHeldAction = CXSetHeldCallAction(call: uuid!, onHold: hold)
//      let transaction = CXTransaction(action: setHeldAction)
//      requestTransaction(transaction, action: "setHeld")
//      #endif
    }

这里部分代码需要注释掉,这个方法是保持接回功能调用的方法;
#else部分的代码,是根据CallKit来进行设置的;

二、手动启动AudioSession

在接听电话的时候,需要手动启动一下AudioSession

CallManager.instance().lc?.configureAudioSession()
CallManager.instance().lc?.activateAudioSession(actived: true)
上一篇 下一篇

猜你喜欢

热点阅读