iPhone电话与短信相关代码小结
关于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多功能,越狱后都能实现 :)