如果项目需求中需要我们针对拨出去的电话的不同状态进行不同的操作,那就需要用到CTCallCenter了。这个就是专门用来监听电话通话的状态的类。具体使用是在拨打电话操作开始后进行初始化操作:
首先要引入系统库头文件:
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* call)
{
if ([call.callState isEqualToString:CTCallStateDisconnected])
{
NSLog(@"Call has been disconnected");//未接通
}
else if ([call.callState isEqualToString:CTCallStateConnected])
{
NSLog(@"Call has just been connected");//通话中
}
else if([call.callState isEqualToString:CTCallStateIncoming])
{
NSLog(@"Call is incoming");
}
else if ([call.callState isEqualToString:CTCallStateDialing])
{
NSLog(@"call is dialing");//正在拨号
}
else
{
NSLog(@"Nothing is done");
}
};
根据上面的各个状态类型我们就可以做我们想要进行的操作了。