打电话时长记录 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];[webViewloadRequest:[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];
// }
}
打电话时长记录 CTCallCenter相关推荐
- 软考中级-软件设计师-视频学习时长记录
软考中级资源:链接: https://pan.baidu.com/s/1LCtCGTCdE_E3UwK-ZhrTBA?pwd=nqn7 提取码: nqn7 复制这段内容后打开百度网盘手机App,操作更 ...
- php录音时长统计,音频app阅读时长统计分析
描述 分析学习喜马拉雅app阅读时长统计机制,并应用到自己app中去 分析 使用抓包工具charles观测app统计发送时机,发现切换音频源,或本地缓存有阅读数据进入首页app时发送(nyx/v2/t ...
- 不要以工作时长论英雄,不要以加班加点为美德
软件程序员在如今看来是一个既能挣钱又有工作保障的职业,但是,这种职业对你的精神健康却会造成巨大的伤害. 有两种事情几乎能让程序员疯掉. 一个是被人们称作「骗子综合征 (imposter syndrom ...
- Redis计数器统计小程序用户停留时长
业务需求 统计小程序的用户停留时长 不需要实时统计,所以按照天为维度 使用Redis的hash形式存并使用计数器累加时长,凌晨定时持久化前一天的数据到DB 注:一些其它统计也可以使用此种方式来 使用R ...
- JavaScript 实现页面内时间实时倒计时 计时器内附完整文件欢迎调用(可用于抢购倒计时,记录恋爱纪念日总时长等)输出对应的天数小时分钟秒数
JavaScript 实现页面内时间倒计时 计时器 可用于抢购倒计时,记录恋爱纪念日总时长等输出对应的天数小时分钟秒数 注意:在下一个文章中将公布一个纪念日成品代码,欢迎各位来学习(复制) 第一步:构 ...
- L版本通话记录里面显示的通话时长与实际不一致的问题
[DESCRIPTION] SW Version:L0.L1 1. 问题1:通话记录里面显示的通话时长与实际不一致的问题. 2. 问题2:通话过程中去设置时间,通话计时时间会变的问题. [SOLUTI ...
- 准确记录用户观看视频内容时长
文章目录 问题的产生 一.从最简单的开始 二.天真可爱法 三.录点法 四.打点法 五.暴力打点法 六.小结 七.大结 问题的产生 to be or not to be, that is a quest ...
- 睡眠实验记录:探索自己的最佳睡眠时长及方式,提高睡眠效率
引言 良好的身体是一切的基础,睡眠习惯不好,导致在昏昏沉沉的状态下效率低下,而且长期以来对身体有较大的危害,笔者出现头疼以及恶心的症状,因此决定改掉不好的习惯.我坚信身体的各个方面是互相促进的,休息好 ...
- 【高效日程管理】基于iOS快捷指令自动化,这是一个记录长期目标、统计专注时长、记录健康数据(需要智能手环、手表)、并生成每日报告与自我总结的高效日程管理方式
核心功能: 1.记录专注时长:分为学霸模式和普通模式,又有正计时和倒计时两种方式.学霸模式下禁止离开计时页面,否则算您结束任务或放弃任务.普通模式下可以离开计时页面,但结束后要进行签到.并且在您进行体 ...
最新文章
- Mask Rcnn训练自己的航拍数据集
- 丰田chr优惠5万_别克昂科威优惠5万?是否该考虑入手了呢?
- Java学习总结:5
- android 自定义控件TextInputSelectBox用法
- python电商项目源码_Python Django(WEB电商项目构建)
- C++实现线段树求区间和-区间查询
- Hibernate--使用xml配置映射关系
- MyEclipse 6.5GA 下载 + 汉化方法
- 萌新的Python练习实例100例(五)输入三个整数x,y,z,请把这三个数由小到大输出。
- RocketMQ开发指导之四——RocketMQ常见问题
- 游戏动词和宾语设计案例精选
- Linux chapter 8
- Sturts2【四】 StrutsPrepareAndExecuteFilter源码分析二
- 灵格斯怎么屏幕取词_灵格斯屏幕取词翻译插件
- stm32F4系列3:学习资料和教程推荐,流程推荐。
- 一个启动U盘装多系统引导,无需反复格式化,ISO/WIM等文件拷贝到U盘即可启动
- 在云端管理您的所有身份(AAD)-第二部分
- Unity将世界坐标转为UI坐标
- Ffmpeg报Error initializing filter ‘gltransition‘这个有问题解决方法
- 服务器常见状态码以及对应关系