代码之家  ›  专栏  ›  技术社区  ›  Jonathan

使用iPhone SDK访问iPhone的通话记录

  •  6
  • Jonathan  · 技术社区  · 16 年前

    我正在构建的应用程序需要从iPhone的呼叫日志中获取一些数据(只读)。 调用日志是一个sqlite数据库,位于“ /用户/库/调用历史记录/调用历史记录.db “。我用了一个越狱装置来提取日志。 但是,尝试使用 SqLITEYOPE3-() 命令我得到 平方误差 错误,根据库文档,这意味着“SQL错误或缺少数据库”。在尝试调试错误时,我已使用nsfilemanager枚举文件夹(“/user/library/”)。它看起来像是返回一组“筛选”的结果,这些结果排除了“callHistory”文件夹以及其他几个文件夹。

    文件系统使用一系列别名来给人一种传统OSX文件结构的错觉,我不知道这些别名是否会影响我的结果。

    呼叫日志只存在于设备上,而不是模拟器上 . 我无法让它在运行Firewale2.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);
    }
    

    我怀疑苹果会阻止访问该目录,这是其沙盒策略的一部分,但是我目前还没有证据。但是,我可以访问通讯簿,没有任何问题,所以我有点困惑。

    谢谢

    8 回复  |  直到 13 年前
        1
  •  15
  •   Chris Hanson    16 年前

    无法从CocoaTouch或其他iPhone API访问呼叫日志。

        2
  •  3
  •   Mike McMaster    16 年前

    记住,我没有试过这些。

    您的逻辑似乎是,如果您可以访问通讯簿数据库,为什么不访问呼叫日志数据库?好吧,地址簿是通过发布的API公开的-调用日志不是。因此,我认为你也不能访问它的数据库文件,这并不奇怪。

        3
  •  3
  •   August    16 年前

    无法使用SDK和已批准的API访问调用日志。这是按设计的。

        4
  •  3
  •   Eva Madrazo    13 年前
        5
  •  2
  •   Jesús A. Álvarez    16 年前

    应用程序不能从沙盒中访问任何内容。通讯簿数据库是可访问的,因为它是由公共框架访问的。 在固件2.1之前,应用程序从其沙盒中有只读访问权。

        6
  •  2
  •   Matt Wagenknecht    13 年前

    我敢打赌PhoneView会从Mac上的iPhone备份文件夹中提取数据。sqlite数据库以可预测的名称存储在那里。

        7
  •  0
  •   leet    14 年前

    有了配置工具和skd,你可以监控通话时间,但看不到是谁,我一直在努力克服同一个问题,取得进展,但苹果明确地做到了这一点,所以它的私人信息,至少是你的通话对象,

        8
  •  -1
  •   Vincent    16 年前

    老实说,你怎么能想象他们会让你访问整个通话记录?一旦你拿到它并充分利用它,你会通过互联网传输它吗?