Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #70, ОКТЯБРЬ 2004 г.

Возьми ОпСоСа под контроль!

Мингулов Денис

Хакер, номер #070, стр. 070-126-1


(denis@mingulov.com)

Обработка логов для смартфонов на Symbian OS

Считаешь, что слишком много платишь за телефон? Желаешь контролировать расходы? Хотел бы выбрать наилучший тариф? Не доверяешь оператору сотовой связи? Выгодно ли тебе подключать дополнительные услуги? Какой «любимый» номер выбрать? Вопросов много. Обычно смартфоны хранят логи по всем произошедшим событиям - и звонкам, и сообщениям, и работе с GPRS. Я покажу тебе создание программы для смартфонов под Symbian, которая ответит на все вопросы о твоих реальных затратах на мобильную связь.

Money, money, money...

Сейчас практически у всех есть сотовый телефон. За его использование надо платить, и чем интенсивнее общение по мобиле, тем больше денег оно требует.

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

У операторов при тарификации могут случаться баги - как в меньшую, так и в большую сторону (от бесплатных звонков в другие страны до приписывания несуществующих звонков).

Если ты захочешь взять у оператора детализацию тарифицированных действий, то даже за плату не везде это поможет. У некоторых операторов может не хватать каких-нибудь данных в детализации, например номеров входящих звонков, и остается неизвестным, был ли звонок платный или нет. К тому же, вдруг какого-нибудь звонка или SMS не было на самом деле?

В смартфонах все события, которые могут быть тарифицированы, сохраняются во внутренних логах. Наиболее распространены такие телефоны на базе Symbian OS. И ты можешь сам анализировать логи своего телефона.

Все смартфоны на Symbian OS

Посмотреть описание каждого ты можешь здесь: www.symbian.com/phones - или на других сайтах.

Доступны: Nokia N-Gage, N-Gage QD, 7650, 3650/3600, 3660/3620, 6600, 7610, 9210/9290(i); Siemens SX1; Sendo X; SonyEricsson P800, P900; Motorola A920, A925.

Ожидаются: Nokia 6620, 6630, 6260, 9500, 7700; Panasonic X700; Samsung SGH-D710; SonyEricsson P910; BenQ P30; Motorola A1000.

Японские (не GSM): FOMA F900i, F2102V, F2051, F900iT.

Начинаем программировать

В августовском номере «Хакера» мы напечатали статью о программировании под Symbian для начинающих. Продолжим - опять возьмем пример HelloWorld и на его базе сделаем новую программу.

Получить доступ к лог-серверу и узнать о произошедших событиях довольно просто.

В документации к SDK ты можешь прочитать про Log Engine. Вкратце, доступ к логам возможен только асинхронно, то есть не напрямую при выполнении программы, а отдельным запросом параллельно, с помощью Active Objects (так в Symbian OS реализована многозадачность).

Подключи к .h-файлу следующие заголовки: <logcli.h> , <logview.h> , <f32file.h> и <logwrap.h> . Свой класс для доступа к логам делай наследником CActive и заводи следующие переменные:

Наши переменные

CLogViewRecent* iRecentLogView;

RFs iFs;

CLogClient* iLogClient;

CLogViewEvent* logViewEvent;

Содержание  Вперед на стр. 070-126-2