如何监听电话

来源:互联网 发布:ise软件和vivado软件 编辑:程序博客网 时间:2024/04/30 20:10

   很早之前做过,这两天看到群里有人问起来,忽然心血来潮的把代码翻出来告诉她。现在把这些整理下来,免得忘了

       二话不说,直接贴代码吧:

      

[plain] view plain copy
  1. #import <CoreTelephony/CTCallCenter.h>  
  2. #import <CoreTelephony/CTCall.h>  

[plain] view plain copy
  1. -(void)detectCall  
  2. {  //需要强引用
  3.      CTCallCenter *callCenter = [[CTCallCenter alloc] init];  
  4.     callCenter.callEventHandler=^(CTCall* call)  
  5.     {  
  6.         if (call.callState == CTCallStateDisconnected)  
  7.         {  
  8.             NSLog(@"Call has been disconnected");  
  9.             self.viewController.signalStatus=YES;  
  10.         }  
  11.         else if (call.callState == CTCallStateConnected)  
  12.         {  
  13.             NSLog(@"Call has just been connected");  
  14.         }  
  15.           
  16.         else if(call.callState == CTCallStateIncoming)  
  17.         {  
  18.             NSLog(@"Call is incoming");  
  19.             //self.viewController.signalStatus=NO;  
  20.         }  
  21.           
  22.         else if (call.callState ==CTCallStateDialing)  
  23.         {  
  24.             NSLog(@"call is dialing");  
  25.         }  
  26.         else  
  27.         {  
  28.             NSLog(@"Nothing is done");  
  29.         }  
  30.     };  
  31. }  


 另外电话接听的时候是监听不到消息了,因为电话一接通,程序就会退出后台,所以不会触发这些消息了

可以用- (void)applicationWillResignActive:(UIApplication *)application
{}

或者是- (void)applicationDidEnterBackground:(UIApplication *)application
{

}

但是这样监听肯定有一个问题,就是总不能对任何程序退出后台的应用都认为是电话接通了吧,所以需要自己去设计哦

这件事情也告诉我们,即使你可以去网上copy 人家的代码,但是作为程序员,还是得有自己的创新,自己的设计。别以为

程序真的只是copy and paste 啊!

0
0 0
原创粉丝点击