Доступ к журналу вызовов iPhone с помощью iPhone SDK - PullRequest
6 голосов
/ 04 декабря 2008

Я создаю приложение, для которого требуются данные из журнала вызовов iPhone (только для чтения). Журнал вызовов представляет собой базу данных sqlite, расположенную по адресу " / User / Library / CallHistory / call_history.db ". Я использовал взломанное устройство для извлечения журнала. Однако при попытке открыть это местоположение с помощью команды sqlite_open3 () я получаю ошибку SQLITE_ERROR , которая в соответствии с документацией библиотеки означает «ошибка SQL или отсутствующая база данных». В попытке отладить ошибку, я использовал NSFileManager для перечисления папки ('/ User / Library /'). Может показаться, что он возвращает «отфильтрованный» набор результатов, который исключает папку «CallHistory» вместе с несколькими другими папками.

Файловая система использует серию псевдонимов, чтобы создать иллюзию традиционной файловой структуры OS X, и я не знаю, влияют ли они на мои результаты.

Журнал вызовов присутствует только на устройстве, а не на симуляторе . Мне не удалось заставить его работать на iPhone 1-го поколения с установленным программным обеспечением 2.1.

Это код, который я использовал для проверки вывода

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 блокирует доступ к каталогу как часть своей стратегии песочницы, однако на данном этапе у меня нет никаких доказательств. Однако я могу получить доступ к адресной книге без каких-либо проблем, поэтому я немного растерялся.

Спасибо

Ответы [ 8 ]

15 голосов
/ 05 декабря 2008

Нет доступа к журналу вызовов из Cocoa Touch или других API-интерфейсов iPhone.

3 голосов
/ 12 сентября 2011

Да, это возможно. Этот учебник работает: http://iosstuff.wordpress.com/2011/08/19/accessing-iphone-call-history/

3 голосов
/ 05 декабря 2008

Вы не можете получить доступ к журналу вызовов, используя SDK и утвержденные API. Это по замыслу.

3 голосов
/ 04 декабря 2008

Имейте в виду, я не пробовал ничего из этого.

Ваша логика заключается в том, что если вы можете получить доступ к БД адресной книги, то почему бы не вести журнал вызовов БД? Что ж, адресная книга предоставляется через опубликованные API-интерфейсы, а журнал вызовов - нет. Следовательно, я не думаю, что это так странно, что вы не можете получить доступ к его файлу БД.

2 голосов
/ 18 февраля 2011

Могу поспорить, что PhoneView извлекает данные из папки резервного копирования iphone на Mac ... базы данных sqlite хранятся там с предсказуемыми именами.

2 голосов
/ 05 декабря 2008

Приложения не предназначены для доступа к чему-либо из их песочницы. База данных адресной книги доступна, потому что она доступна из общедоступных структур. До прошивки 2.1 приложения имели доступ только для чтения из своей песочницы.

0 голосов
/ 29 июня 2010

с помощью утилиты config и skd вы можете отслеживать, когда совершаются звонки, но не можете видеть, кому, я пытался решить ту же проблему, добиваясь прогресса, но Apple определенно сделала это своей личной информацией, по крайней мере, кто звонит,

0 голосов
/ 04 декабря 2008

Честно говоря, как вы можете представить, что они позволят вам получить доступ ко всему журналу вызовов? Как насчет того, чтобы передать его через Интернет после того, как вы его получили и эффективно используете эту информацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...