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)
相关推荐
若水无华21 小时前
fiddler 配置ios手机代理调试
ios·智能手机·fiddler
Aress"1 天前
【ios越狱包安装失败?uniapp导出ipa文件如何安装到苹果手机】苹果IOS直接安装IPA文件
ios·uni-app·ipa安装
Jouzzy1 天前
【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
安全·ios·iphone
瓜子三百克1 天前
采用sherpa-onnx 实现 ios语音唤起的调研
macos·ios·cocoa
左钦杨1 天前
IOS CSS3 right transformX 动画卡顿 回弹
前端·ios·css3
努力成为包租婆1 天前
SDK does not contain ‘libarclite‘ at the path
ios
安和昂2 天前
【iOS】Tagged Pointer
macos·ios·cocoa
I烟雨云渊T3 天前
iOS 阅后即焚功能的实现
macos·ios·cocoa
struggle20253 天前
适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO
yolo·ios·开源·app·swift
Unlimitedz3 天前
iOS视频编码详细步骤(视频编码器,基于 VideoToolbox,支持硬件编码 H264/H265)
ios·音视频