访问拨打的电话号码

问题描述:

我正在研究严格证明概念的应用程序。我需要做的是获得当前拨打的号码。我检查了CoreTelephony框架文档,它有一个名为CTCall的类,它公开了两个属性 - callID和callState。因此它允许检测呼叫状态的变化(例如,当拨打号码,当呼叫被连接时等),但呼叫ID似乎完全无用。访问拨打的电话号码

是否有人知道一种替代方式来访问此信息?私有API也很好,越狱方法也是如此。因为我的工作是严格证明概念。

在此先感谢。

越狱的方式来搜索呼叫记录直接查询数据库文件。看看这个example

在iOS 5,沙盒应用程序不会有这个文件读取权限,周围的方式(仅越狱)是手动签署应用程序并将其复制到系统应用程序文件夹。

检查this question关于这一主题的更多信息。

+0

感谢fbernardo的回复。不幸的是,链接中描述的方法在iOS 5.0及更高版本中不起作用。 – cybervedaa 2012-04-05 01:46:50

+0

@cybervedaa我已经更新了我的答案。 – fbernardo 2012-04-05 15:13:53

我发现检索当前所拨打的号码的另一种方式。下面是代码。

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