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_915918412 小时前
详解iOS App上架至App Store的全流程步骤与注意事项
android·macos·ios·小程序·uni-app·cocoa·iphone
库奇噜啦呼8 小时前
【iOS】weak底层实现
macos·ios·cocoa
软泡芙10 小时前
【IOS】 Swift Package Manager (SPM) 指南
网络·ios·swift
黑化旺仔10 小时前
iOS - 计算器仿写
ios
zhaocarbon11 小时前
WKWebView 拦截 POST/PUT方法 丢失body的问题解决
ios·xcode·webview
库奇噜啦呼1 天前
【iOS】NSOperation与NSOperationQueue
macos·ios·cocoa
二流小码农1 天前
鸿蒙开发:实现文本渐变效果
android·ios·harmonyos
WiresharkClub1 天前
抓包遇到私有协议全是乱码?抓包鹰自定义协议解码教程
ios
Lvan的前端笔记2 天前
ios:版本号和Build构建号
ios
鹤卿1232 天前
「iOS」3GShare总结
macos·ios·objective-c·cocoa