前言
LinphoneSDK
的CallKit
默认是打开的;由于国内的限制,是不允许包含有CallKit
的app上线;
所以我们需要把CallKit
关闭;
一、关闭CallKit
-
CallManager.swift
文件
@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)
网友评论