近期在做一个网络电话会议,需要判断手机的通话状态,通过在网上查找资料找到一个苹果私有框架,下面简单介绍如何使用:

1,要在项目中添加CoreTelephony.framework这个框架,怎么添加如下图:

点击“+”,添加即可;

2,在你需要用到该功能的class中,导入如下两个头文件

#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

3,使用代码如下:

CTCallCenter *center = [[CTCallCenter alloc] init];
    center.callEventHandler = ^(CTCall *call){
        //block回调
        NSLog(@"----->>>>Call State : %@",[call description]);
        
        if (call.callState == CTCallStateDisconnected){
            NSLog(@"Call has been disconnected---挂断"); 
        }else if (call.callState == CTCallStateConnected){
            NSLog(@"Call has just been connected---通话中");
        }else if(call.callState == CTCallStateIncoming){
            NSLog(@"Call is incoming---来电中(未接起)");
        }else if (call.callState ==CTCallStateDialing){
            NSLog(@"call is dialing");
        }else{
            NSLog(@"Nothing is done");
        }
        
    };
进行初始化完后,就可以测试啦。给被测试的手机打电话,就会执行^(CTCall *call)回调中的代码,通过[call description]可以看出手机通话的各种状态。

特别注意,这是iOS的私有API,不能上线AppStore会被拒;而且在项目中定义全局属性变量(@property (nonatomic,retain)CTCallCenter * center;)编译也不会通过!!!!

希望对大家有用,哈哈哈!

转载于:https://www.cnblogs.com/pangbin/p/5425049.html

监听iPhone的通话状态之---CoreTelephony.framework相关推荐

  1. Android广播监听usb插拔状态

    注册广播监听usb的挂载状态,过滤 vid 和 pid,以下是源码: class IdUsbManager private constructor() {val pid = 50010val vid ...

  2. dcloud 5+ 监听安卓前后台切换状态 并后台运行程序

    dcloud 5+ 监听安卓前后台切换状态 并后台运行程序 监听安卓前后台切换状态 function monitorRunStatus() {// 部分型号监听"应用从前台切换到后台&quo ...

  3. Android中如何监听手机GPS打开状态

    位置坐标监听.GPS卫星状态监听在Android应用中常见,我们是否一进入应用就注册相应的监听? 答案当然不是的.比如,手机的GPS没有打开,而我们注册了监听,那有什么用呢? 所以,我们应该实时监听手 ...

  4. freeswitch实现监听、三方通话的两种方法

    首先是使用freeswitch自带的监听和三方通话的功能, 模块:mod_dptools: eavesdrop mod_dptools: three_way 使用方法是针对已经建立通话的双方的其中之一 ...

  5. Android监听来去电通话录音真正可实行方案,可获取电话接通时状态

    最近 经过一段时间研究了Android来去电并且录音的研究,特此作为记录 首先监听来去电并且可以录音得有以下权限: //录音权限 <uses-permission android:name=&q ...

  6. 【Unity】监听编辑器聚焦/激活状态OnEditorFocus

    Unity提供了大量监听Asset目录下资源变化/导入时的回调,只需写个类继承AssetPostprocessor,实现各种回调方法即可接收到消息.但是Asset目录之外的文件变化该如何监听呢? 配置 ...

  7. JS window.open()打开新窗口、监听页面打开关闭状态(详细)

    使用 window 对象的 open() 方法可以打开一个新窗口.用法如下: window.open (URL, name, features, replace) 参数列表如下: URL:可选字符串, ...

  8. Android开发:优化电池续航-监听电量和充电状态

    当你在更改后台更新频率来减少这些更新对电池寿命的影响时,检查当前电量和充电状态是一个好的开始. 电池寿命通过剩余电量和充电状态来影响应用更新的执行.当用交流电充电时,执行更新操作对设备的影响是微不足道 ...

  9. Android 监听手机GPS打开状态

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854942 本文出自[赵彦军的博客] GPS_Presenter package ...

最新文章

  1. Android移动开发之【Android实战项目】Textview各项属性(全)
  2. IP与DSCP优先级
  3. esxi服务器接移动硬盘,esxi添加usb移动硬盘存储数据
  4. 外包女程序员-----励志段子 留着 等没事的时候看看
  5. vpx8运行待解决问题
  6. 用计算机唱出惊雷,除了《惊雷》还有多少喊麦神曲?这十首神作你一定听过!...
  7. LeetCode 881. 救生艇(贪心,双指针)
  8. Java时间日期的处理
  9. php 天比较,php 计算距离天的时间还有多少天
  10. 有用户反映小米手机充电变慢,官方回应:天气过热
  11. 李彦宏说互联网思维已过时,AI可以根本上变革交通、城市、农业和医疗
  12. 设计模式之美:Bridge(桥接)
  13. 根据几何定义使用计算机编程求定积分的值
  14. cdn/github_cdn加速配置
  15. svn执行update操作后出现:Error : Previous operation has not finished; run 'cleanup' if it was interrupted.
  16. 高级驾驶辅助系统ADAS技术介绍
  17. FPGA的NIOS-||的开发入门
  18. Android学习之省份城市县区选择+向上一级活动返回数据
  19. c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
  20. 关于跳出while(1)死循环问题

热门文章

  1. Linux 磁盘管理命令
  2. linux 访问不同网段
  3. Bit-Z亮相巴厘岛XBlockchain峰会
  4. 用 Go 构建一个区块链 -- Part 3: 持久化和命令行接口
  5. 数据存储之 SQLite 数据库操作(一)
  6. 无源码动态调试APK
  7. html如何引入less,VueJS如何引入css或者less文件的一些坑
  8. bootstrap insertrow始终插入到最后一行_HBase put命令:插入数据
  9. 使用Qt创建XML文档及XML文档的增删改
  10. android 单例存储,Android 单例在内存中存储数据