先导入这两个头文件,库文件不用导可以

#import <CoreTelephony/CTCallCenter.h>

#import <CoreTelephony/CTCall.h>

//申明电话类属性,必须申明成成品属性,不然没效果;

@property(nonatomic,strong)CTCallCenter *callCenter;

//如下两个方法中监听:

- (void)applicationWillResignActive:(UIApplication *)application {

// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.

// Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.

self.callCenter = [[CTCallCenter alloc] init];

self.callCenter.callEventHandler=^(CTCall* call)

{

if (call.callState == CTCallStateDisconnected)

{

NSLog(@"-applicationWillResignActive----挂断");   //挂断

//            self.viewController.signalStatus=YES;

}

else if (call.callState == CTCallStateConnected)

{

NSLog(@"--applicationWillResignActive---连通了"); //联通了

}

else if(call.callState == CTCallStateIncoming)

{

NSLog(@"applicationWillResignActive Call is incoming");

//self.viewController.signalStatus=NO;

}

else if (call.callState ==CTCallStateDialing)

{

NSLog(@"--applicationWillResignActive----拨号");  //拨号

}

else

{

NSLog(@"applicationWillResignActive Nothing is done?");

}

};

NSLog(@"applicationWillResignActive:%@",application);

}

- (void)applicationDidBecomeActive:(UIApplication *)application {

// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.

self.callCenter = [[CTCallCenter alloc] init];

self.callCenter.callEventHandler=^(CTCall* call)

{

if (call.callState == CTCallStateDisconnected)

{

NSLog(@"-applicationDidBecomeActive----挂断");   //挂断

//            self.viewController.signalStatus=YES;

}

else if (call.callState == CTCallStateConnected)

{

NSLog(@"--applicationDidBecomeActive---连通了"); //联通了

}

else if(call.callState == CTCallStateIncoming)

{

NSLog(@"applicationDidBecomeActive Call is incoming");

//self.viewController.signalStatus=NO;

}

else if (call.callState ==CTCallStateDialing)

{

NSLog(@"--applicationDidBecomeActive----拨号");  //拨号

}

else

{

NSLog(@"applicationDidBecomeActive Nothing is done?");

}

};

NSLog(@"applicationDidBecomeActive:%@",application);

}

//结合上面的打印顺序,app方法的调用顺序如下:

//来电时> applicationDidBecomeActive Call is incoming > applicationWillResignActive:

//挂断>  applicationWillResignActive----挂断 > applicationDidBecomeActive:<UIApplication: 0x137609010>

//机主接听>  --applicationWillResignActive---连通了

//通话结束> -applicationWillResignActive----挂断 > applicationDidBecomeActive:<UIApplication: 0x137609010>

ios应用来电监听的更多相关文章

  1. Android来电监听和去电监听

    我觉得写文章就得写得有用一些的,必须要有自己的思想,关于来电去电监听将按照下面三个问题展开 1.监听来电去电有什么用? 2.怎么监听,来电去电监听方式一样吗? 3.实战,有什么需要特别注意地方? 监听 ...

  2. Service之来电监听(失败的案例)

    Service:服务,可以理解成一个运行再后台没有界面的Activity,集成于Seriver,是四大组件之一 Service的继承关系:Service-->ContextWrapper--&g ...

  3. IOS开发:监听来电状态的改变。

    #import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> @property(nonato ...

  4. android 呼入电话的监听(来电监听)转

    需要权限: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 方式一:通过广 ...

  5. 类似吸顶功能解决ios不能实时监听onscroll的触发问题

    问题:近期项目需要一个类似西东功能,当页面向上滚动160px后div固定在顶部 解决方法:首先,想到的是window.onscroll方法 .fixed{position:fixed;-webkit- ...

  6. iOS 键盘的监听 调整view的位置

    iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)vie ...

  7. iOS地图 -- 区域监听的实现和小练习

    区域监听用到的方法 [self.mgr startMonitoringForRegion:region]; --> 开启区域监听,没有返回值,在代理方法中得到信息并且处理信息 注:该方法只有用户 ...

  8. 【iOS】通知监听

    下例为:监听文本框  accountField  内容的改变, 当发生改变时, 调用textChange方法(多次).监听结束需要移除通知. - (void)viewDidLoad { [super ...

  9. iOS: 使用KVO监听控制器中数组的变化

    一.介绍: KVO是一种能动态监听到属性值的改变的方式,使用场景非常广泛,这里我只讲如何监听控制器ViewController中数组的变化. 二.了解: 首先我们应该知道KVO是不能直接监听控制器Vi ...

随机推荐

  1. cefSharp 设置运行时系统语言

    在使用用CefSharp使用过程中,系统用了很多第三方控件.这些控件很多能够根据浏览器设置的语言来进行控件展示对应语言. 在cefSharp可以设置系统语言,代码如下: CefSharp.Settin ...

  2. Codeforces335B - Palindrome(区间DP)

    题目大意 给定一个长度不超过5*10^4的只包含小写字母的字符串,要求你求它的回文子序列,如果存在长度为100的回文子序列,那么只要输出长度为一百的回文子序列即可,否则输出它的最长回文子序列 题解 这 ...

  3. Pascal <-> C/C++ 转换简明教程

    在OI的学习中,阅读多种语言的能力是很重要的. 本文就着眼于让大家最快地掌握这两种语言间的转换方法. 程序主结构 C/C++ Pascal 主程序(即开始执行的程序段)和其他函数.过程本质上都属于函数 ...

  4. Kooboo CMS 介绍

    Kooboo的定位是一个CMS,内容管理平台,从更严格意义上来说,它更应该网站快速开发平台.针对一般网站开发过程的分析和提炼,着重在解决网站的一般需求,提出一套快速开发网站的理念和方法.在这些理念和方 ...

  5. Jquery常用方法篇(一)

    1.add方法:将匹配的元素添加到当前的jquery对象集合中. 语法 add(expr,[context]) 参数1表示 用于匹配元素选择器(待添加的对象),或者用于动态生成的HTML代码(字符串) ...

  6. 前端javascript规范文档 (http://www.xuanfengge.com/category/web)

    说明:本文档为前端JS规范 一.规范目的 为提高团队协作效率,便于前端后期优化维护,输出高质量的文档. 二.基本准则 符合web标准,结构表现行为分离,兼容性优良.页面性能方面,代码要求简洁明了有序, ...

  7. Kali无法定位软件包的解决方案

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 以前遇到过,后来好久没碰Linux了,忘记了.之后上网搜了一下....呃,发现解 ...

  8. 页面接口防刷 解决思路一nginx

    线上环境 很多接口 如果不做缓存 可能导致有人拿到url  每秒几万次的访问后台程序,导致系统down机. 此处, nginx可以加一层缓存. expires起到控制页面缓存的作用,合理的配置expi ...

  9. [USACO10MAR]伟大的奶牛聚集

    [USACO10MAR]伟大的奶牛聚集 Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来举办这次集会. 每个奶牛居住在 N(1<=N& ...

  10. 为什么 var_dump("1" == "1e0"); 的结果为true

    今天,同学问我一个问题,如下:var_dump("1" == "1e0"); 的结果是什么. 我的第一反应,答案是false.因为很明显的要比较的是两个字符串, ...