ios 拨打电话系统回调函数

当我们使用系统的拨打电话函数拨打电话时,想获取现在电话的状态,可以使用下面的函数获得状态。

使用方法:

1.引入CoreTelephony.frameWork 

2. 在APPDelegate中做如下定义与说明

  • #import <CoreTelephony/CTCall.h>
  • #import <CoreTelephony/CTCallCenter.h>
  • @interface AppDelegate ()   
  • {  
  •     CTCallCenter *callCenter;  
  • }  
  • @end  
  • - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  • {  
  •     [self callCallBack];  
  • }  
  1. - (void)callCallBack  
  2. {  
  3.     callCenter = [[CTCallCenter alloc] init];  
  4.     callCenter.callEventHandler = ^(CTCall* call) {  
  5.         if ([call.callState isEqualToString:CTCallStateDisconnected])  
  6.         {  
  7.             NSLog(@"Call has been disconnected");  
  8.         }  
  9.         else if ([call.callState isEqualToString:CTCallStateConnected])  
  10.         {  
  11.             NSLog(@"Call has just been connected");  
  12.         }  
  13.         else if([call.callState isEqualToString:CTCallStateIncoming])  
  14.         {  
  15.             NSLog(@"Call is incoming");  
  16.         }  
  17.         else if ([call.callState isEqualToString:CTCallStateDialing])  
  18.         {  
  19.             NSLog(@"call is dialing");  
  20.         }  
  21.         else  
  22.         {  
  23.             NSLog(@"Nothing is done");  
  24.         }  
  25.     };  
  26. }  

3.  在ViewController中调用系统的拨打电话函数,然后就会回调刚刚上面的callcallBack中的ios系统提供的方法。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]]

猜你喜欢

转载自my.oschina.net/u/2345393/blog/1627841