//CoreTelephony.framework
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
@property(nonatomic,strong)CTCallCenter*callCenter;
callCenter此参数必须为成员变量,要不然在ARC编译环境下,在这个函数之后就会被销毁,无法正常监听来电状态!
-(void)IsCallPhone{
callCenter = [[CTCallCenteralloc] init];
callCenter.callEventHandler = ^(CTCall* call) {
NSLog(@"监听到电话波动");
if ([call.callStateisEqualToString:CTCallStateDisconnected])
{
NSLog(@"已挂断=%@",call.callID);
}
elseif ([call.callStateisEqualToString:CTCallStateConnected])
{
NSLog(@"通话中=%@",call.callID);
}
elseif([call.callStateisEqualToString:CTCallStateIncoming])
{
NSLog(@"被叫中=%@",call.callID);
}
elseif ([call.callStateisEqualToString:CTCallStateDialing])
{
NSLog(@"发起主叫=%@",call.callID);
}
};
}