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 ...
随机推荐
- Sql->Linq-> Lambda 相互转换
Linq 转 SQL 或 Linq 转 Lambda : 工具: LinqPad Sql 转 Linq to Entity: 工具: Linqer
- 关于Spring的Controller及Struts的Action的多线程的注意
struts是线程安全,并不是指多线程,而是指单态,当多个用户访问一个请求的时候,服务器内存中只有一个与之对应的action类对象,execute方法加上了同步关键字,如果你在action里加上一个全 ...
- HW2.20
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- Combobox 成员添加
this.comboBox1.Items.AddRange(new object[] {"Item 1", "Item 2", "Item 3&quo ...
- win7下禁用ctrl alt del +上下左右键
1.控制面板 2.屏幕分辨率 3.高级设置 4.英特尔图形和媒体控制面板 5.图形属性 6.选项和支持 7.快捷键管理器 8.去掉启动前的勾
- Oracle Tnsping慢
http://www.linuxidc.com/Linux/2014-02/96167.htm http://www.askmaclean.com/archives/dns%E8%AE%BE%E7%B ...
- js定时显示广告代码
这是一则定时显示广告的javascript代码,当然也可以定时显示某一区块内容,很实用. 代码如下: function strToDate(str, ext) { if (str == null || ...
- 拼接<a>标签相关属性
<s:iterator value="#session.funcs" id="sonbean"> <s:if test="%{#so ...
- C# DataTable的詳細使用方法
在项目中经经常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTabl ...
- String.Format使用方法
1.作为參数 名称 说明 Format(String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. Format(String, ...