Чтение Базы Данных iPhone

Мой пост на этой неделе не касается чего-то, с чем Вы столкнетесь при разработке бизнес-приложений в QlikView, он скорее немного случайный,  написанный ради веселья. Мы пройдем несколько шагов, чтобы прочесть , например, историю вызовов, SMS-сообщения, список контактов, заметки и т.д.

Мне кажется, такая функция может иметь реальное применение: У Вас может быть модель данных с таблицей вызовов, ассоциированный список контактов (для получения имен) и таблицы SMS, может быть, с Таблицей ссылок или мастер календарем, чтобы связать датыДанные, которые хранятся в SMS таблице с Данными, хранящимися в журнале вызовов. Затем, Вам нужно будет использовать эту информацию, чтобы ответить на несколько вопросов:

  1. Кому я звоню больше всего?
  2. В среднем, сколько звонков в день я совершаю?
  3. Сколько времени я трачу на телефонные звонки (времени на разговоры) в месяц?
  4. Телефонная компания сняла с меня правильную оплату с учетом допольнительных минут, которые я использовал?
  5. Какой процент Исходящих звонков в сравнении с Входящими?
  6. Вы можете отследить шаблоны в СМС сообщениях, которые свидетельствуют, что лучше было один раз позвонить, чем слать 10 сообщений.

Какой мобильный клиент QlikView/Qlik Sense вы предпочитаете?
iPhone? Android? iPad? BlackBerry?

Прежде чем мы начнем, Вам необходимо помнить несколько вещей:

  • Вам НЕ нужен взломанный iPhone, хотя Вы можете им пользоваться.
  • По умолчанию, iPhone сохраняет только последние 100 записей в журнале вызовов. Поэтому, возможно, Вам стоит позаботится о резервном копировании полученных данных, чтобы позже использовать их или объединить, когда Вы получите новые данные. Вы можете изменить лимит (только на взломанных телефонах), следуя инструкциям, описанным здесь: https://www.emiratesmac.com/forums/iphone/8679-iphone-call-history-limit-increase.html
  • Я не заметил лимит в таблице истории СМС.
  • Я не буду смотреть на расширение каждой таблицы или поля в базе данных, потому что я, правда, не знаю, настолько хорошую Базу данных, но Вы получите общее представление.

Хорошо! Давайте это сделаем!

База данных, которая в настоящее время используется в iPhone это SQLite, поэтому Вам нужно будет получить драйвер ODBC. Существует версия на 64 и 32 бита. Установите ту, которая Вам нужна и Вы получите соединение под названием SQLite 3 Datasource.

Для того, чтобы получить файлы на Вашем компьютере (я предполагаю, что Вы используете Windows, так как, скорее всего, являетесь разработчиком QlikView), необходимо сделать резервную копию iPhone с помощью Itunes (инструкции здесь).

После того как Вы сделаете резервную копию, Вы должны получить *.db файлы. Itunes сохраняет резервные файлы в следующих местах:

  • Windows Vista и Windows 7: Пользователи (имя пользователя) AppDataRoamingApple ComputerMobileSyncBackup
  • Windows XP: Документы и Настройки (имя пользователя) Application DataApple ComputerMobileSyncBackup
  • Mac: ~ /Library/Application Support/MobileSync/Backup/

Примечание: Если Вы не видите папки AppData или папки Application Data, Вам, возможно, потребуется показать скрытые файлы (Windows XP, Windows Vista и Windows 7).

Перейдя к этой папке, Вы увидите кучу файлов с редкими/закодированными именами. Они Вам и понадобятся:

Рис. 1

Резервная копия iPhone – Закодированные Имена

Итак, сейчас у Вас есть 1) ODBC, и 2) база данных (Вам просто нужно изменить/добавить расширение файла в исходных резервных  файлах).

Я уверен, что Вы знаете, куда двигаться дальше, но хочу написать еще о двух моментах:

  1. Убедитесь, что строка подключения указывает на имя файла. У Вас должно получится что-то вроде:

o          ODBC CONNECT TO [SQLite3 Datasource;Database=< full path to the db file >];

  1. Временные метки Unix в 10-значном формате. Я использовал это, чтобы преобразовать его в удобный для чтения формат (это даст Вам UTC Timestamp, Вам, возможно, прийдется вычесть/добавить определенное количество часов, чтобы перевести его на свое местное время):

o          Date(MakeDate(1970, 1, 1) + (< field containing timestamp, usually “date” >/60/60/24), ‘DD/MM/YYYY hh:mm:ss[.fff] TT’) в качестве даты

Наслаждайтесь! И, пожалуйста, дайте мне знать, было ли это для Вас полезно.

 

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

64 queries in 0,426 seconds