簡體   English   中英

使用iPhone SDK訪問iPhone的通話記錄

[英]Accessing the iPhone's Call log with the iPhone SDK

我正在構建需要從iPhone的通話記錄(只讀)獲取一些數據的應用程序。 呼叫日志是位於“ /User/Library/CallHistory/call_history.db ”中的sqlite數據庫。 我使用了一個越獄的設備來提取日志。 但是,嘗試使用sqlite_open3()命令打開此位置時,我收到一個SQLITE_ERROR錯誤,根據庫文檔,這意味着“ SQL錯誤或缺少數據庫”。 為了嘗試調試錯誤,我使用了NSFileManager來枚舉文件夾('/ User / Library /')。 看起來好像是在返回一組“已過濾”的結果,其中不包括“ CallHistory”文件夾以及其他幾個文件夾。

文件系統使用一系列別名給人一種傳統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訪問呼叫日志。

請記住,我還沒有嘗試過任何方法。

您的邏輯似乎是,如果您可以訪問通訊簿數據庫,那么為什么不訪問呼叫日志數據庫呢? 嗯,通訊簿是通過已發布的API公開的-調用日志不是。 因此,我認為您也無法訪問其db文件並不奇怪。

您不能使用SDK和批准的API訪問呼叫日志。 這是設計使然。

對的,這是可能的。 本教程有效: http : //iosstuff.wordpress.com/2011/08/19/accessing-iphone-call-history/

應用程序無意訪問其沙箱之外的任何內容。 通訊錄數據庫是可訪問的,因為它是由公共框架訪問的。 在固件2.1之前,應用程序確實具有對其沙箱的只讀訪問權限。

我敢打賭,PhoneView將從Mac上的iphone備份文件夾中提取數據。.sqlite數據庫以可預測的名稱存儲在該數據庫中。

使用config實用程序和skd,您可以監視何時撥打電話,但是看不到誰,我一直在努力解決同一問題,雖然取得了進展,但蘋果明確地做到了這一點,因此它的私人信息,至少是誰,

老實說,您怎么能想象他們會讓您訪問整個呼叫日志? 獲取並充分利用此信息后,如何通過Internet傳輸它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM