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)
相关推荐
2501_9160088911 小时前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview
2501_9159214312 小时前
“HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
网络协议·http·ios·小程序·https·uni-app·iphone
Digitally15 小时前
将联系人添加到iPhone的8种有效方法
ios·iphone
Digitally15 小时前
如何在没有 iCloud 的情况下备份 iPhone
ios·iphone·icloud
Dashing17 小时前
KN:Kotlin 与 OC 交互
ios·kotlin
黄毛火烧雪下18 小时前
创建一个ios小组件项目
ios
songgeb18 小时前
🧩 iOS DiffableDataSource 死锁问题记录
ios·swift
2501_9291576821 小时前
「IOS苹果游戏」600个
游戏·ios
00后程序员张21 小时前
iOS 26 App 运行状况全面解析 多工具协同监控与调试实战指南
android·ios·小程序·https·uni-app·iphone·webview
白玉cfc1 天前
【iOS】KVC 与 KVO 的基本了解与使用
macos·ios·objective-c·cocoa