访问拨打的电话号码
问题描述:
我正在研究严格证明概念的应用程序。我需要做的是获得当前拨打的号码。我检查了CoreTelephony框架文档,它有一个名为CTCall的类,它公开了两个属性 - callID和callState。因此它允许检测呼叫状态的变化(例如,当拨打号码,当呼叫被连接时等),但呼叫ID似乎完全无用。访问拨打的电话号码
是否有人知道一种替代方式来访问此信息?私有API也很好,越狱方法也是如此。因为我的工作是严格证明概念。
在此先感谢。
答
越狱的方式来搜索呼叫记录直接查询数据库文件。看看这个example。
在iOS 5,沙盒应用程序不会有这个文件读取权限,周围的方式(仅越狱)是手动签署应用程序并将其复制到系统应用程序文件夹。
检查this question关于这一主题的更多信息。
答
我发现检索当前所拨打的号码的另一种方式。下面是代码。
NSString *path = @"/var/mobile/Library/Preferences/com.apple.mobilephone.plist";
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
NSMutableString *number = [NSString stringWithFormat:@"%@", [dict valueForKey:@"DialerSavedNumber"]];
限制:如果数通过单击链接而拨打它不会拿起拨过的号码,或者如果它是通过单击[最近列表或contacts.It一个拨打的号码只有数为工作在拨号器上拨号。
+0
此方法不起作用,我得到iOS 6.1.3上的字典null任何帮助,请。 – 2013-07-30 06:54:18
感谢fbernardo的回复。不幸的是,链接中描述的方法在iOS 5.0及更高版本中不起作用。 – cybervedaa 2012-04-05 01:46:50
@cybervedaa我已经更新了我的答案。 – fbernardo 2012-04-05 15:13:53