zoukankan      html  css  js  c++  java
  • 监听iPhone的通话状态之---CoreTelephony.framework

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

    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;)编译也不会通过!!!!

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

  • 相关阅读:
    STM32中GPIO的8种工作模式
    robots.txt与搜索引擎
    关于《腾讯工具类APP的千年老二》的读后感
    PCB布线的操作步骤
    c语言数据库编程ODBC
    锂电池相关结构优势特点及其保护电路解析方案
    C语言中的#与##字符的作用
    PADS中Layer的描述说明
    吃了单片机GPIO端口工作模式的大亏——关于强推挽输出和准双向口(弱上拉)的实际应用
    Protel与PADS之间相关文件的转换
  • 原文地址:https://www.cnblogs.com/pangbin/p/5425049.html
Copyright © 2011-2022 走看看