获取iPhone通话记录(需越狱)
越狱后的手机的数据库文件可以自由访问,通话记录通常保存在call_History.db这个文件中.只要读取这个文件,我们就能知道目前手机的通话记录了
下面这段代码检测手机是否能读取到Call_History.db
NSFileManager *fileManager = [NSFileManager defaultManager];NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath: @"/private/"];NSString *nextItem = [NSString string];while( (nextItem = [dirnum nextObject])) {if ([[nextItem pathExtension] isEqualToString: @"db"] || [[nextItem pathExtension] isEqualToString: @"sqlitedb"]) {if ([fileManager isReadableFileAtPath:nextItem]) { NSLog(@"%@", nextItem); } }}
通常发现的文件位置为var/wireless/Library/CallHistory/call_history.db,ios3和4可能不同,具体看上面代码打印的结果.
下面这段代码可以读出数据库中的内容,具体怎样显示自己定制把.
- (void)readCallLogs{if (_dataArray == nil) { _dataArray = [[NSMutableArray alloc] init]; } [_dataArray removeAllObjects]; NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *callHisoryDatabasePath = @"var/wireless/Library/CallHistory/call_history.db"; BOOL callHistoryFileExist = FALSE; callHistoryFileExist = [fileManager fileExistsAtPath:callHisoryDatabasePath]; [fileManager release];//NSMutableArray *callHistory = [[NSMutableArray alloc] init]; if(callHistoryFileExist) {if ([fileManager isReadableFileAtPath:callHisoryDatabasePath]) { sqlite3 *database;if(sqlite3_open([callHisoryDatabasePath UTF8String], &database) == SQLITE_OK) { sqlite3_stmt *compiledStatement; NSString *sqlStatement = [NSString stringWithString:@"SELECT * FROM call;"]; int errorCode = sqlite3_prepare_v2(database, [sqlStatement UTF8String], -1, &compiledStatement, NULL);if( errorCode == SQLITE_OK) {int count = 1; while(sqlite3_step(compiledStatement) == SQLITE_ROW) {// Read the data from the result row NSMutableDictionary *callHistoryItem = [[NSMutableDictionary alloc] init];int numberOfColumns = sqlite3_column_count(compiledStatement); NSString *data; NSString *columnName; for (int i = 0; i < numberOfColumns; i++) { columnName = [[NSString alloc] initWithUTF8String: (char *)sqlite3_column_name(compiledStatement, i)]; data = [[NSString alloc] initWithUTF8String: (char *)sqlite3_column_text(compiledStatement, i)]; } [callHistoryItem setObject:data forKey:columnName]; [columnName release]; [data release]; } [_dataArray addObject:callHistoryItem]; [callHistoryItem release]; count++; } }else { NSLog(@"Failed to retrieve table"); NSLog(@"Error Code: %d", errorCode); } sqlite3_finalize(compiledStatement); } } } NSLog(@"%@",_dataArray);}
到此,你就可以读出所有的通话记录了.
by MAC-z
获取iPhone通话记录(需越狱)相关推荐
- 通话记录查询Java_Android获取手机通话记录的方法
Android如何获取手机通话记录,本文为大家揭晓. 获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentRe ...
- Android获取手机通话记录的方法
获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2.resolver.query( ...
- android通讯录管理(获取联系人,通话记录,短信消息),Android通讯录管理(获取联系人、通话记录、短信消息)(二)...
Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 界面布局: /Contact_Demo/res/layout ...
- android通话记录手机号码归属地,mui 获取手机通话记录
export default { onLoad() { this.log(); // this.msg(); // this.concat(); }, methods: { log() { // 获取 ...
- Android通讯录管理 获取联系人 通话记录 短信消息 一
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...
- Android通讯录管理(获取联系人 通话记录 短信消息)(一)
Android通讯录管理(获取联系人.通话记录.短信消息) 2014年2月26日 通讯录开发研究学习 前言:前阵子主要是记录了如何对联系人的一些操作,比如搜索,全选.反选和删除等在实际开发中可能需要实 ...
- Android通讯录管理(获取联系人 通话记录 短信消息)(三)
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...
- 如何在 iPhone 上恢复已删除的通话记录/通话记录
您的通话记录/通话记录可能很重要,尤其是当您想要拨打之前联系过但未保存的号码时.如果您碰巧删除了通话记录(有意或无意),本指南将帮助您了解如何检索它们并找回您需要使用的所有记录.我们将根据您的情况和您 ...
- Windows Mobile获取通话记录 C#
Windows Mobile获取通话记录 C# 文章作者:alalmn文章作者:[E.S.T] alalmn 信息来源:邪恶八进制信息安全团队(www.eviloctal.com)飞龙 QQ31611 ...
最新文章
- 【数据库】sqlite中PRAGMA命令说明
- 爬虫之xpath语法-节点修饰语法
- find命令详解(原创)
- FreeRTOS介绍
- 云闪付怎么设置不跳华为支付_【教程】华为Pay用闪付券撸京东E卡!
- 底部固定菜单_【悬浮菜单】安卓悬浮amp;手势助手
- 如何节约数据中心空间
- h5页面保存img_一文彻底解决HTML5页面中长按保存图片功能
- HardFault_Handler问题查找方法
- lEO数值资产系统某平台c2c币数值合约交易平台自动撮合松机器人功能
- 初识exe程序反汇编小感
- 关于Debug和Release之本质区别(转)
- 安卓电视 TV端的webview网页 按键控制和一些小问题
- Unity-TA 成长之路(二)内置渲染管线-官方篇
- android gps 经纬度转换,AndroidGPS获取当前经纬度坐标
- SAS计算IV代码分享
- 费马大定理 超级计算机,数学专业经典读物
- 动词ing基本用法_动词-ing的形式及用法
- 使用windows自带的测速工具WinSat对移动硬盘进行测速
- K8S集群中Pod资源处于CrashLoopBackOff状态排查思路
热门文章
- 注解 java 反射_java注解和反射
- linnux 流量控制模块tc_可编程控制器PLC基本工作原理(第一颗)
- python爬虫提取教学_python爬虫的基本抓取
- PTP NTP kernel 驱动讲解 (未完待续)
- java gson 解析string_Java之——深入解析String、StringBuffer、StringBuiler
- python扫雷代码文件_基于Python实现的扫雷游戏实例代码
- java 复杂报表_Java+POI+模板”一:打造复杂Excel 报表
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
- linux tcp重传多会导致软中断在各个核很不均匀么?
- Swift - 使用NSNotificationCenter发送通知,接收通知