iOS使用CXCallObserver监听电话接听与拨打

初始化

Swift 复制代码
import CallKit

class HomeViewController: UIViewController, CXCallObserverDelegate {
    public var cacheManager: TripCacheManager = TripCacheManager.init()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.callObserver.setDelegate(self, queue: DispatchQueue.main)
    }
}

状态监听

Swift 复制代码
func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
    print("call observer uuid: \(call.uuid)")
    print("outgoing(拨打):\(call.isOutgoing) onHold(待接通):\(call.isOnHold) hasConnected(接通):\(call.hasConnected) hasEnded(挂断):\(call.hasEnded)")
    }
}

该方法不能通过单一状态来判断当前状态,建议进行多值的判断。

取消监听

Swift 复制代码
self.callObserver.setDelegate(nil, queue: DispatchQueue.main)
相关推荐
TheNextByte111 小时前
如何在 iPad/iPhone 上删除语音邮件?
ios·iphone·ipad
TheNextByte112 小时前
如何修复iPhone短信消失问题?
ios·cocoa·iphone
二流小码农14 小时前
鸿蒙开发:独立开发者的烦恼之icon图标选择
android·ios·harmonyos
智先森zhi15 小时前
实战:将 Android 多Module应用迁移到 kmp+cmp
android·ios·kotlin
TheNextByte116 小时前
如何在没有iTunes的情况下重启/恢复出厂设置iPhone
ios·cocoa·iphone
芝加哥兔兔养殖场18 小时前
前端/iOS开发者必备工具软件合集
前端·ios
TheNextByte119 小时前
如何从 iPhone 仅传输喜爱的照片?
ios·iphone
m0_6410310519 小时前
iOS签名是什么?为什么苹果APP需要签名
经验分享·科技·ios·游戏程序
_pengliang20 小时前
react native expo 开发 ios经验总结
react native·react.js·ios
YJlio1 天前
1.7 通过 Sysinternals Live 在线运行工具:不下载也能用的“云端工具箱”
c语言·网络·python·数码相机·ios·django·iphone