我正在构建需要iPhone的Call日志中的一些数据的应用程序(只读).呼叫日志是位于" /User/Library/CallHistory/call_history.db " 的sqlite数据库.我使用越狱设备来提取日志.但是,尝试使用sqlite_open3()命令打开此位置时出现SQLITE_ERROR错误,根据库文档意味着"SQL错误或缺少数据库".在尝试调试错误时,我使用NSFileManager枚举文件夹('/ User/Library /').看起来好像它正在返回一组"已过滤"的结果,它会将"CallHistory"文件夹与其他几个文件夹一起排除.
File系统使用一系列别名来给出传统OS X文件结构的错觉,我不知道这些是否对我的结果有影响.
通话记录仅出现在设备上,而不是模拟器上.我一直无法让它在运行fireware 2.1的第一代iPhone上工作.
这是我用来测试输出的一些代码
NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath: @"/private/var/mobile/Library/"]; while( bar = [dirnum nextObject]) { //Uncomment if you don't want to log sub folders //[dirnum skipDescendents]; NSLog(bar); }
我怀疑Apple阻止访问该目录作为其沙盒策略的一部分,但我现阶段没有证据.但是,我可以毫无问题地访问地址簿,所以我有点困惑.
谢谢
无法从Cocoa Touch或其他iPhone API访问呼叫日志.