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

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

  • 相关阅读:
    Chrome使用指南
    Vue2.x-踩坑记
    C# WinForm listView 多行删除 操作
    Winform中DataGridView多行删除
    20211026_阿里云服务器引流限制ssl的问题
    docker commit
    docker build
    docker build与docker commit
    阿里云Docker镜像仓库(Docker Registry)
    Docker Nginx安装(centos7)
  • 原文地址:https://www.cnblogs.com/pangbin/p/5425049.html
Copyright © 2011-2022 走看看