ios应用来电监听
先导入这两个头文件,库文件不用导可以
#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应用来电监听的更多相关文章
- Android来电监听和去电监听
我觉得写文章就得写得有用一些的,必须要有自己的思想,关于来电去电监听将按照下面三个问题展开 1.监听来电去电有什么用? 2.怎么监听,来电去电监听方式一样吗? 3.实战,有什么需要特别注意地方? 监听 ...
- Service之来电监听(失败的案例)
Service:服务,可以理解成一个运行再后台没有界面的Activity,集成于Seriver,是四大组件之一 Service的继承关系:Service-->ContextWrapper--&g ...
- IOS开发:监听来电状态的改变。
#import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> @property(nonato ...
- android 呼入电话的监听(来电监听)转
需要权限: <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 方式一:通过广 ...
- 类似吸顶功能解决ios不能实时监听onscroll的触发问题
问题:近期项目需要一个类似西东功能,当页面向上滚动160px后div固定在顶部 解决方法:首先,想到的是window.onscroll方法 .fixed{position:fixed;-webkit- ...
- iOS 键盘的监听 调整view的位置
iOS在处理键盘的出现和消失时需要监听UIKeyboardWillChangeFrameNotifications/UIKeyboardDidHideNotifications - (void)vie ...
- iOS地图 -- 区域监听的实现和小练习
区域监听用到的方法 [self.mgr startMonitoringForRegion:region]; --> 开启区域监听,没有返回值,在代理方法中得到信息并且处理信息 注:该方法只有用户 ...
- 【iOS】通知监听
下例为:监听文本框 accountField 内容的改变, 当发生改变时, 调用textChange方法(多次).监听结束需要移除通知. - (void)viewDidLoad { [super ...
- iOS: 使用KVO监听控制器中数组的变化
一.介绍: KVO是一种能动态监听到属性值的改变的方式,使用场景非常广泛,这里我只讲如何监听控制器ViewController中数组的变化. 二.了解: 首先我们应该知道KVO是不能直接监听控制器Vi ...
随机推荐
- 【转】傅里叶变换 拉普拉斯变 z变换 DFT DCT意义
傅里叶变换在物理学.数论.组合数学.信号处理.概率论.统计学.密码学.声学.光学.海洋学.结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量). ...
- ionic如何uglify和minify你的js,css,image,png....
Install: 1.ionic start myapp blank 2.cd myapp 3.npm install cordova-uglify or npm install ...
- Docker系列(一)安装
操作系统版本:Centos7 Docker版本:1.8 设置安装源 1 cat > /etc/yum.repos.d/docker.repo << -EOF 2 [dockerr ...
- 【Java基础】List迭代并修改时出现的ConcurrentModificationException问题
现在有一个需求,要遍历一个List,假设List里面存储的是String对象,然后该需求事判断里面如果有某个对象,则添加一个新的对象进去.自然,我们得出下面的代码: import java.util. ...
- 教程-Delphi设置功能表
1.锁定窗体上的控件,禁止移动位置 D7-Edit>Lock Controls 2.设置控件永久显示名字 D7-Tools>Environment Options>Designer& ...
- The Basics
“Swift is a new programming language for iOS and OS X app development. Nonetheless, many parts of Sw ...
- Yii2 多域名跨域同步登录退出
在平台开发过程中,项目分为前台(frontend)www.xxx.com和后台(backend) yun.xxx.com两部分,绑定两个域名, 我们知道在没有绑定域名的时候前后台可以同步登录和退出,但 ...
- javascript中bind,apply,call的相同和不同之处
javasctipt中bind,apply,call的相同点是: 1,都是用来改变this的指向; 2,都可以通过后续参数进行传参; 3,第一个参数都是指定this要指向的对象; 不同点: 1,调用方 ...
- linux ls -l 详解
转自:http://blog.csdn.net/sjzs5590/article/details/8254527 (原文转自http://hi.baidu.com/yzzcheng/item/1a21 ...
- AngularJS开发下一代Web应用笔记(一)
一.写在最前 AngularJS是Google推出的一款Web应用开发框架.它提供了一系列兼容性良好并且可扩展的服务,包括数据绑定.DOM操作.MVC设计模式和模块加载等. 现在网上JS框架茫茫多,真 ...