关于iPhone上电话与短信相关功能,做一个简单总结:

使用公开SDK能实现的功能:

(1)获取和操作通讯录。使用函数 ABAddressBookRequestAccessWithCompletion 、ABAddressBookCopyArrayOfAllPeople等,需要用户点击按钮确认。

(2)获取电话状态     使用类CTCallCenter可以得到通话状态(呼入、呼出、挂断,运营商等,无法得到呼入呼出电话号码),前后台时事件略有不同

(3)获取运营商及网络信息

          使用类CTCarrier CTTelephonyNetworkInfo

(4)拨打电话

[[UIApplication sharedApplication] openURL:@"tel://88888]

(5)调用发送短信的界面

方法一
          [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]]; 只能设定发送号码
        方法二 使用 MFMessageComposeViewController 可以设定号码和内容,但不能自定义界面, 必须由用户点击确认发送,不能后台发送
使用

需要使用非公开SDK或者越狱才能实现的功能

之所以将非公开SDK和越狱区分开,是因为概念有些差异。有些私有API即使不越狱,在有证书的情况下,也是可以在真机上运行的。而有些功能,必须在越狱的情况下,才能有权限执行,没有越狱的情况下,有证书也无法运行。

(1)获取电话号码

CTSettingCopyMyPhoneNumber  私有API,不需要越狱
     (2) 获取通话记录和短信内容
   
          通话记录 读取数据库/private/var/root/Library/CallHistory/call_history.db 需要越狱

(3) 获取收到短信事件
        CTTelephonyCenterAddObserver 监听事件  私有API,不需要越狱

还有其他N多功能,越狱后都能实现 :)

iPhone电话与短信相关代码小结的更多相关文章

  1. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

  2. iOS通过openURL打开原生应用与页面(包括电话,短信,safari等)

    [[UIApplication sharedApplication] openURL:url];通过给url不同的值,可以实现调用系统自带 电话/短信/邮箱/浏览器/... 1.调用 电话phone[ ...

  3. Android-读取操作系统通话记录并/拨打电话/发送短信/复制号码到拨号盘

    apps目录的contacts应用(有读取通话记录功能),是访问provider目录的provider.contacts应用(有暴露通话记录),所以要阅读Android操作系统源码-->pack ...

  4. Arduino+sim800C家居安防火灾报警 拨打电话 发送短信例程程序

    家居安防报警器,参考程序. 火灾报警 涉及用sim800c发短信,拨打电话通知. 接线: Sim800c 3.3V -> Arduino 3.3V Sim800c GND -> Ardui ...

  5. php短信接口代码

    这篇文章主要为大家详细介绍了php短信接口代码,php短信发送.php批量发送.php获取余额等代码,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了几个常用的php短信接口代码,供大家参考,具体内 ...

  6. react-native-communications 电话、短信、邮件、浏览器

    第一种方法:Linking:调用系统的电话.短信.邮件.浏览器等功能 Linking.canOpenURL(this.props.url).then(supported => { if (!su ...

  7. Android面试收集录 电话、短信和联系人、多媒体技术

    1.请写出调用系统拨号界面? Intent intent=new Intent(Intent.ACTION_DIAL,Uri.pase("tel:12345678910")); s ...

  8. Mac OS X 10.10优胜美地怎样完美接管iphone上的电话和短信

    自从今年苹果第一次的公布会上毛猫就特别注意这个功能.感觉特别Cool,特别方便.但直到今天毛猫才第一次成功測试出这个功能呀.尽管handoff功能还未測出来,可是认为在mac上发短信和打电话也已经足够 ...

  9. Mac OS X 10.10优胜美地如何完美接管iphone上的电话和短信

    自从今年苹果第一次的发布会上毛猫就特别注意这个功能,感觉特别Cool,特别方便.但直到今天毛猫才第一次成功测试出这个功能呀!虽然handoff功能还未测出来,但是觉得在mac上发短信和打电话也已经足够 ...

随机推荐

  1. python中的修饰符@的作用

    1.一层修饰符 1)简单版,编译即实现 在一个函数上面添加修饰符 @另一个函数名 的作用是将这个修饰符下面的函数作为该修饰符函数的参数传入,作用可以有比如你想要在函数前面添加记录时间的代码,这样每个函 ...

  2. 报错:Error, CM server guid updated, expected xxxxx, received xxxxx (未解决)

    报错背景: CDH断电重启后,cloudera-scm-server启动报错, cloudera-scm-server 已死,但 pid 文件仍存 由于没有成熟的解决方案,于是我就重新安装了MySQL ...

  3. Silence Removal and End Point Detection MATLAB Code

    转载自:http://ganeshtiwaridotcomdotnp.blogspot.com/2011/08/silence-removal-and-end-point-detection.html ...

  4. (十四)访问标志 Access_flags

    一.概念 上一章节讲到了常量池,如下图,常量池之后便是访问标志acess_flags,占2个字节(u2). 二.例子 编写一个接口. public interface Test{ public fin ...

  5. Linux查找含有特定字符串的文件

    Linux查找含有特定字符串的文件命令为grep.以下为详细的使用方法 grep [OPTIONS] PATTERN [FILE...] #实例:递归查找当前文件夹下所有含有test的文件,并显示行号 ...

  6. 数据标记系列——图像分割 & Curve-GCN

    在之前的文章中(参考:),我们提到了Polygon-RNN++在数据标注中的应用.今天不得不提到多伦多大学与英伟达联合公布的一项最新研究:Curve-GCN的应用结果显示图像标注速度提升10倍. Cu ...

  7. @PathVariable设置为空的问题(required=false)

    参考了:http://www.imooc.com/qadetail/268268 最近学习springMVC的时候,学到@PathVariable后,发现@PathVariable有个required ...

  8. 用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识1

    什么是REST REST 是 Representational State Transfer 的缩写. 它是一种架构的风格, 这种风格基于一套预定义的规则, 这些规则描述了网络资源是如何定义和寻址的. ...

  9. Word中如何加载EndNote

    在百度中搜索了很多解决方案,都不尽相同忙了一上午也没解决,然后搁浅,吃过午饭回来在安装目录下找到如下exe文件三四步点击搞定 所以,有时候问题出现了长时间没解决,可以换下环境出去溜达一圈说不定就茅塞顿 ...

  10. 《Netty实战》源码运行及本地环境搭建

     1.源码路径: GitHub - zzzvvvxxxd/netty-in-action-cn: Netty In Action 中文版 ,中文唯一正版<Netty实战>的代码清单 下载后 ...