iOS监听电话事件

项目上有个需求,要求打完电话后加积分.

首先导入这两个头文件:

1
2
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>

添加属性:

@property (nonatomic, strong) CTCallCenter *callCenter;

获取状态如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
self.callCenter = [[CTCallCenter alloc] init];
self.callCenter.callEventHandler=^(CTCall* call)
{
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");
}
};