Note that there are some explanatory texts on larger screens.

plurals
  1. POAccessing the iPhone's Call log with the iPhone SDK
    text
    copied!<p>I am building application that required some data from iPhone's Call log(read only). The call log is a sqlite db located at "<em>/User/Library/CallHistory/call_history.db</em>". I used a jailbroken device to extract the log. However trying to open this location using the <em>sqlite_open3()</em> command I get a <em>SQLITE_ERROR</em> error, which according to the library documentation means "SQL error or missing database". In an attempt to debug the error I've used NSFileManager to enumerate the folder('/User/Library/'). It would appear as if it's returning a "filtered" set of results, that exclude the 'CallHistory' folder along with several of the other folders. </p> <p>The File system uses a series of alias to give the illusion of tradition OS X file structure, and I don't know if these are having an effect on my results.</p> <p><strong>The call log is only present on a device, and not the simulator</strong>. I've been unable to get it to work on a 1st gen iPhone running fireware 2.1.</p> <p>This is some code I used to test the output</p> <pre><code>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); } </code></pre> <p>I have a suspicion that Apple is blocking access to the directory as part of its sandboxing strategy, however I have no proof at this stage. However, I can access the address book without any issues, so I'm a little confused.</p> <p>Thanks</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload