CTCall简介(后续会继续补充)

使用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。
 
 
时间: 2024-08-05 06:18:07

CTCall简介(后续会继续补充)的相关文章

SpringMVC简介与配置

1.Spring MVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler.通过可配置的handler mappings.view resolution.locale以及theme re

Akka 简介

Akka简介 一.知识补充 耦合与解耦: 耦合 -->两个或两个以上体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象 ? 对于软件工程,对象之间的耦合度是对象之间的依赖度,耦合程度越高,维护成本越高 解耦 -->解除耦合关系 ? 模块间有依赖关系必然存在耦合,理论上绝对零耦合做不到.要使数据模型,业务逻辑,视图显示三层之间彼此降低耦合,把关系依赖降低 RPC(Remote Procedure Call) RPC 用于同一组件中各个不同模块之间的通信(面向过程) RESTful 用于

Spring MVC简介

Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler.通过可配置的handler mappings.view resolution.locale以及theme resolution来处理请求并且

IOS Quartz2D简介

Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxContext = UIGraphicsGetCurrentContext(); //开始画图 //设置直线起点 CGContextMoveToPoint(cxContext, 0, 20); //设置直线中点 CGContextAddLineToPoint(cxContext, 100, 20); //渲染

JVM——简介

网上流传着一段挺有意思的话-- 对于从事C或C++的开发人员来说,他们既是内存管理的最高权力的皇帝,也是最基础的劳动人民,担负着每一个对象生命开始到终结的维护工作,有点光杆司令的赶脚. 但对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不需要手动维护,也不容易出现内存泄漏和溢出的问题.但是如果不了解JVM,一旦出现问题,你就会变得无从下手-- 一.JVM Java Virtual Machine(java虚拟机),一种虚构的计算机,通过在实际计算机上模拟各种计算机功能实现的. JVM结

swift基础:第三部分:对第一部分的补充说明

今天是我学习swift的第二天,虽然我和swift的距离有点远,但我相信,我会慢慢的接近这门语言的.好了,我们聊聊昨天晚上的事吧,昨天晚上下班早,回到家时,真是惊喜哈,宿舍那两做好了饭,等我吃饭,想对他们说一声,一路有你们,我感到很知足啊 当然很平凡的一件事,但却暖在心里.第二件让人暖心的事就是我吃饭的时候,腾讯公司打来电话,问我有没有测试岗位的意向,虽说没有这个意向,但我还是勉强说是,于是腾讯的hr在电话中对我做了面试,问我一些问题,都是我没有接触过的,好在我可以以iOS开发经验来回答他,好了

JaveWeb开发使用工具套装(较好的一整套开发工具简介)

工具介绍,仅java开发后台工具,前后端开发分离时,自测接口工具,开发工具等. 一.web接口测试的两个提高工作效率的神器-Restlet Client和fe助手(谷歌插件) Restlet Client 是模拟前端web发送get/post请求,可以是json.text.对象的形式发送请求对于前后端分离进行测试后台接口有很大的帮助. fe助手 是对json类型的返回值进行以json字符串的形式显示,对于对服务器返回的参数进行更好的显示,当然还有很多其他的功能,比如二维码生成,页面性能检测,代码

(转)spring 框架介绍

转自:http://www.cnblogs.com/wawlian/archive/2012/11/17/2775435.html 1.Spring MVC简介 Spring MVC框架是有一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC和Struts.Struts2非常类似.Spring MVC的设计是围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到

关于python开发CRM系统

注意本项目是针对培训学校开发简化的CRM CRM简介 CRM全称:customer relationship management 无CRM的痛点 没有CMR的缺点及痛点: 每个销售会通过Excel来统计客户信息,造成信息不能同步和共享 客户信息没有记录和跟进信息 会造成抢单问题 无法统计成单率和报表 没有和客户的沟通记录 客户信息表,唯一的客户端ID 一对多的跟进记录 客户状态,报名和未报名 客户来源分析 学员报名信息 学员可以报多个课程,每个课程的每节课程都有成绩,以及成绩排名 班级信息 将