如何监听电话

来源:互联网 发布:aimp和foobar 知乎 编辑:程序博客网 时间:2024/05/01 01:18

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

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

      

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

-(void)detectCall{     CTCallCenter *callCenter = [[CTCallCenter alloc] init];    callCenter.callEventHandler=^(CTCall* call)    {        if (call.callState == CTCallStateDisconnected)        {            NSLog(@"Call has been disconnected");            self.viewController.signalStatus=YES;        }        else if (call.callState == CTCallStateConnected)        {            NSLog(@"Call has just been connected");        }                else if(call.callState == CTCallStateIncoming)        {            NSLog(@"Call is incoming");            //self.viewController.signalStatus=NO;        }                else if (call.callState ==CTCallStateDialing)        {            NSLog(@"call is dialing");        }        else        {            NSLog(@"Nothing is done");        }    };}


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

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

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

}

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

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

程序真的只是copy and paste 啊!