Доступ к журналу вызовов iPhone с помощью iPhone SDK

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

Спасибо


person Jonathan    schedule 04.12.2008    source источник


Ответы (8)


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

person Chris Hanson    schedule 04.12.2008
comment
как это приложение работает? знаете ли вы что-нибудь об этом - itunes.apple.com/us/app / callog / id327883585? mt = 8 - person Saurabh; 10.06.2011
comment
@Saurabh ты понял, как работает это приложение? или все еще загадка? - person Janak Nirmal; 06.03.2013
comment
@Jennis Я знаю, как работало это приложение, но сейчас это не актуально. Эта штука работает только с iOS 4. Apple ограничила некоторую область на диске iPhone, и мы ничего не можем получить из этой области. - person Saurabh; 07.03.2013
comment
@Saurabh - Мне тоже было любопытно, оказалось, что у них есть журнал звонков из приложения. Это не совсем актуально, но это лишнее подтверждение - нет доступа к журналу звонков. Хотя вы можете отслеживать входящие звонки, когда ваше приложение запущено, но это не приносит большой пользы. - person Aleksey Shafransky; 08.01.2015

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

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

person Mike McMaster    schedule 04.12.2008

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

person August    schedule 05.12.2008

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

person Eva Madrazo    schedule 12.09.2011

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

person Jesús A. Álvarez    schedule 05.12.2008

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

person Matt Wagenknecht    schedule 18.02.2011

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

person leet    schedule 29.06.2010

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

person Vincent    schedule 04.12.2008
comment
Да, это не самая безопасная вещь, я согласен, но я полагаю, что вы можете получить доступ к адресной книге, так что это не так, как если бы это было невероятно. - person Jonathan; 04.12.2008
comment
Это (одна из многих причин) того, почему они так ограничивают возможности магазина приложений. Теоретически вы могли бы написать приложение, которое отправляет вашу адресную книгу или список вызовов в сеть, но они (надеюсь) предотвратят попадание этого приложения в магазин. - person Orion Edwards; 04.12.2008
comment
Не будь глупцом. На вашем компьютере есть множество программ, которые могут отправлять контактную информацию, электронные письма и другие вещи в бог знает куда, а вы об этом не знаете. А сейчас на телефоне вдруг проблема? - person Rolf; 05.12.2008
comment
Я не думаю, что Apple так сильно фильтрует приложения. Невозможно отследить, как вы получаете некоторую контактную информацию, сохраняете ее где-то в памяти, сжимаете данные и бум в другой функции, отправляющей ее за границу. - person Vincent; 15.12.2008
comment
@Rolf: Потому что приложения бесплатны, и люди думают, что это такая песочница, что с их телефоном ничего не может случиться, даже если приложение выглядит не совсем законным. - person Vincent; 15.12.2008