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

#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. Asm Shader Reference --- Shader Model 3.0 part

    ps部分 概览   Instruction Set                                       Name Description Instruction slots S ...

  2. 理解iPhone高清分辨率的问题

    理解iPhone高清分辨率的问题可以有两个关键切入点: 1.像素坐标普通屏是480*320,Retina屏是960*640,而逻辑坐标系同为480*320: 2.Retina屏幕一个逻辑坐标点坐标包含 ...

  3. 【JS】Intermediate7:jQuery:DOM API

    1.jQuery also makes performing actions on many elements at the same time simple 2.eg:$('.note').css( ...

  4. eclipse svn安装

    SVN插件下载地址及更新地址,你根据需要选择你需要的版本.现在最新是1.8.x Links for 1.8.x Release: Eclipse update site URL: http://sub ...

  5. ACM2030_机内码

    /* 汉字统计 问题说明 统计给定文本文件中汉字的个数.   输入 输入文件首先包含一个整数Ñ,表示测试实例的个数,然后是Ñ段文本.   产量 对于每一段文本,输出其中的汉字的个数,每个测试实例的输出 ...

  6. 《征服c指针》学习笔记-----统计文本单词数目的程序word_count

    1.程序的要求:对用户指定的英文文本文件(包括标准输入),将英文单词按照字母顺序输出到用户指定的文本文件中(包括标准输出),并且在各单词后面显示单词的出现次数. 2.模块设计: 主要分为:1.从输入流 ...

  7. 字符串匹配算法之Rabin-Karp算法

    关键思想在于把输入的字符既看作图形符号,又看做数字,预处理算出模式P的d进制的值p,时间复杂度为Θ(m),让后针对n - m + 1个有效偏移s计算出相应的ts,这里是由于利用ts来计算ts+1,时间 ...

  8. cocos2d-x 2.0 拖尾效果分析

    转自:http://game.dapps.net/gamedev/game-engine/7281.html 在Cocos2d-x中,拖尾效果有一个专门的类CCMotionStreak来实现.下面我们 ...

  9. Android解析Json速度最快的库:json-smart

    场景描写叙述: 本文仅验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度.结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是json-smart. And ...

  10. Bootstrap-风格的下拉按框:Bootstrap Select

    Bootstrap Select 是一个jQuery插件,提供了Bootstrap 风格的下拉选择框.拥有许多自定义的选项,可多选. 效果图: 源代码: <select class=" ...