iOS监听拨打电话回调函数

今天在公司写一个项目,需要监听拨打电话完的状态,客户要求在接通电话之后挂断电话的话就进行一系列操作,如果没有接通就挂断电话则不能进行操作

下面上代码

头文件 在这里需要包含两个头文件,不需要导入framwork

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

@interface DetailViewController () <UIWebViewDelegate>

@property (nonatomic, strong) CTCallCenter *callCenter;
@end

这是两种打电话的方式

- (IBAction)phoneAction:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://10086"]];
}

- (IBAction)phoneWebAction:(id)sender {
    UIWebView *callWebview =[[UIWebView alloc] init] ;
    NSURL *telURL =[NSURL URLWithString:@"tel://514091"];
    [callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];
    [self.view addSubview:callWebview];
}

这是电话回调函数

-(void)detectCall
{
    self.callCenter = [[CTCallCenter alloc] init];
    self.callCenter.callEventHandler=^(CTCall* call)
    {
        if (call.callState == CTCallStateDisconnected)
        {
            NSLog(@"-----------------------------挂断");   //挂断
//            self.viewController.signalStatus=YES;
        }
        else if (call.callState == CTCallStateConnected)
        {
            NSLog(@"-----------------------------连通了"); //联通了
        }

        else if(call.callState == CTCallStateIncoming)
        {
            NSLog(@"Call is incoming??????????1");
            //self.viewController.signalStatus=NO;
        }

        else if (call.callState ==CTCallStateDialing)
        {
            NSLog(@"-----------------------------拨号");  //拨号
        }
        else
        {
            NSLog(@"Nothing is done????????????2");
        }
    };
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值