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)
相关推荐
Engandend14 小时前
Flutter与iOS混合开发交互
flutter·ios·程序员
山水域16 小时前
GoogleAdsOnDeviceConversion 库的作用与用法
ios
Lucifer晓16 小时前
记录一次Flutter项目上传App Store Connect出现“Validation failed”错误的问题
flutter·ios
扶我起来还能学_18 小时前
uniapp Android&iOS 定位权限检查
android·javascript·ios·前端框架·uni-app
杂雾无尘20 小时前
SwiftUI 新手必读:如何用纯 SwiftUI 在应用中实现分段控制?
ios·swift·apple
Daniel_Coder21 小时前
iOS Widget 开发-5:Widget 与主 App 的通信原理:App Group、UserDefaults 与文件共享
ios·swift·widget
HX4361 天前
MP - Realm (not just realm)
android·ios·全栈
YungFan2 天前
iOS26适配指南之UINavigationController
ios·swift
木叶丸2 天前
Flutter 生命周期完全指南
android·flutter·ios
Keya2 天前
解决 pod install 警告信息显示不完全的方法
ios·xcode·cocoapods