CTCall简介(后续会继续补充)
2024-10-19 11:45:01
使用CTCall需要导入CoreTelephony.framework框架。
CTCall的基本使用
(1)初始化call
CFStringRef number = CFSTR("15555555555");
CTCallRef call = CTCallDial(number);// 创建并拨号
...
CTCallHold(call);// 保持通话
...
CTCallResume(call);// 恢复通话
...
CTCallDisconnect(call);// 结束通话
注意:传给CTCallDial方法的参数,必须是规范化的电话号码。如:+1 (555) 555-5555 规范化后为 15555555555。
那么如何获取规范化的号码呢:你可以使用 CPPhoneNumberCopyNormalized方法来规范化一个电话号码。
(2)获取通话记录使用 _CTCallCopyAllCalls 方法获取所有的通话记录,这个列表中的每个元素都是CTCall。CFArrayRef calls = _CTCallCopyAllCalls();NSLog(@"Calls: %@", calls);
CFRelease(calls);
(3)补充CPPhoneNumber
上文提到过,在创建CTCall的时候,传进去的参数必须是规范化的电话号码。那么用于处理电话号码的东东就是CPPhoneNumber啦。现在来介绍下CPPhoneNumber的功能和使用。
CPPhoneNumber的功能使用最多的就是规范化电话号码和比较两个电话号码。
<1>规范化电话号码:CPPhoneNumberCopyNormalized 该方法返回一个规范化的号码copy
extern "C" char *CPPhoneNumberCopyNormalized(const char* number);
char *pn = CPPhoneNumberCopyNormalized("+1 (555) 555-5555");
printf("%s\n", pn); // 15555555555
free(pn);
<2>比较两个号码:CPPhoneNumbersEqual 该方法会把传进来的两个号码自动格式化后,再进行比较,相同为真,不同为假。国家代码这个参数,在两个电话号码里面有不包含国家代码的时候,需要额外提供一个。
extern "C" CFStringRef CPPhoneNumberCopyHomeCountryCode();
extern "C" BOOL CPPhoneNumbersEqual(const char* number1, const char* number2, CFStringRef country);
BOOL equal = CPPhoneNumbersEqual("+49302270", "0302270", CPPhoneNumberCopyHomeCountryCode()); // 如果连个号码都是+49(德国)的,那么这两个号码相同,返回yes。
最新文章
- Oracle_R12C_安装注意点_Win64_exectask
- Linux下VirtualBox启动物理硬盘上已安装的Window 8系统
- maven操作
- Linux开发cocos2dx程序环境搭建
- AngularJs学习笔记1——入门知识
- 前端--关于CSS盒模型
- COB(Chip On Board) 工艺技术
- 【Spark2.0源码学习】-1.概述
- 消除ExtJS6的extjs-trila字样
- Java集合图谱
- U盘、移动硬盘等弹出 “文件或目录损坏且无法读取” 实测解决办法
- 经典DFS问题实践
- python中的type
- mysql数据库主从同步读写分离(一)主从同步
- JAVA poi 帮助类
- WAMP运行分析
- Delphi XE5 for Android (六)
- Git学习 之 安装
- Kubernetes 1.5 配置dns
- 将app现有的icon转化成圆角icon