打电话时长记录 CTCallCenter

获取系统的通话记录 目前在真机测试 根据网上的一些获取对应的数据库路径,无法获得相应的数据库文件

要做一个回访记录的需求,主要是实现 打电话通话的时长

通过CTCallCenter 可以监听到 电话的相关状态 ,但是如果在打电话过程中,

1.自己双击home键,使得app运行后台 2.直接返回电话系统

这样会使得 CTCallCenter 无法继续监听

如果需要继续接听 需要自己先 让app回到主应用,然后在点击最上方电话块,继续接听电话

2. 直接拨打后 经测试时间5分钟 也可以监听到,所以在打电话的时候 实际是在当前app运行,没有退到后台

代码:

CTCallCenter 需要设置为属性 如果使用局部变量,便回失效

- (void)initCallCenter: (CTCallCenter *)callCenter {
    
    __weak typeof(self) weakSelf = self;
    callCenter.callEventHandler = ^(CTCall *call){
        
        if ([call.callState isEqualToString:CTCallStateDisconnected]){
            NSLog(@"挂断");
//            if (!_isManualStopPlay) [weakSelf play];
            self.str = [self.str stringByAppendingString:@"挂断  ,"];
        }
        else if ([call.callState isEqualToString:CTCallStateConnected]){
            NSLog(@"接通");
            self.str = [self.str stringByAppendingString:@"接通  ,"];
        }
        else if([call.callState isEqualToString:CTCallStateIncoming]){
            NSLog(@"呼入尚未接通");
            self.str = [self.str stringByAppendingString:@"呼入尚未接通  ,"];
        }
        else if ([call.callState isEqualToString:CTCallStateDialing]){
            NSLog(@"呼出尚未接通");
            self.str = [self.str stringByAppendingString:@"呼出尚未接通  ,"];
        }
        else{
            NSLog(@"未知");
            self.str = [self.str stringByAppendingString:@"未知  ,  "];
        }
    };
}
- (IBAction)handleCallButtonPress:(id)sender
{
    CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init];
    NSString *code = [networkInfo.subscriberCellularProvider mobileCountryCode];
    if (code != nil) {
        [self callTelephone];
        return;
    }else {    
        // 无法呼叫
    }
}
- (void)callTelephone{
    UIWebView *webView = [[UIWebView alloc] init];
    [webView
     loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel:10086"]]];
    
    [[UIApplication sharedApplication].keyWindow addSubview:webView];
    
//     第二种打电话方式
//    NSURL *phoneUrl = [NSURL URLWithString:[NSString  stringWithFormat:@"telprompt://%@",@"10086"]];
//    if ([[UIApplication sharedApplication] canOpenURL:phoneUrl]) {
//        [[UIApplication sharedApplication] openURL:phoneUrl];
//    }
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值