Климов Александр Петрович
Шрифт:
При помощи этой технологии можно обрабатывать информацию о различных состояниях устройства и постоянно отслеживать изменения этих состояний. Если будут обнаружены какие-либо изменения, то система сообщит об этом приложению. Использование данных технологий открывает широкие возможности для увеличения функциональности программ. Например, разработчик сможет определять силу сигнала от сотовой станции, значение текущего заряда батареи, узнать, подключен ли крэдл, отслеживать состояние ActiveSync, определять наличие подключаемой клавиатуры, фотокамеры и гарнитуры. Также с помощью этой технологии можно определять число Bluetooth-соединений, отображать список текущих сетевых соединений, получать информацию об ориентации экрана. Разработчик может получать информацию о следующей назначенной встрече (Appointment), обрабатывать информацию о проигрываемом музыкальном файле, получать информацию о контактах и количестве не прочитанных электронных писем, SMS-сообщений и пропущенных телефонных звонков.
Чтобы использовать возможности State and Notifications Broker в приложениях, надо добавить ссылку на сборку
Конечно, без наглядного примера обойтись просто нельзя. Предположим, что нас интересует информация о владельце устройства и необходимо отслеживать изменение этой информации. Для этого надо создать новый проект и добавить на форму элемент
Протестируем пример. После запуска приложения с ним не нужно ничего делать. Следует нажать кнопку
Да, с помощью этого кода можно получить интересующие данные, но в этом случае нельзя узнать, когда эти данные изменятся. Придется через определенные промежутки времени проверять, не изменился ли адрес у владельца устройства.
Но стоит вернуться к примеру уведомления об изменении электронного адреса владельца устройства. Отслеживанием изменений в системе занимается класс
Затем нужно присоединить делегат к новому экземпляру события
А уже после этого можно перехватывать изменение состояния нужных параметров:
Пример с электронным адресом был приведен лишь для ознакомления. На самом деле, с помощью соответствующих свойств можно получить доступ более чем к ста системным настройкам. Наиболее внимательные читатели могут заметить, что State и Notifications Broker порой дублируют функциональность, которую можно воспроизвести при помощи других средств. Например, текущую ориентацию экрана можно узнать с помощью функции API
Но зачем понадобилось создавать еще одну дополнительную возможность извлечения информации? Причин для такого шага было несколько. Прежде всего, новые возможности удобны и просты. В предыдущем примере было показано, что для получения электронного адреса владельца устройства достаточно вызвать одно соответствующее свойство. Для получения других значений также вызываются соответствующие свойства. Причем названия этих свойств говорят сами за себя и не требуют наличия под рукой справочной литературы.
Для закрепления материала нужно дополнить программу еще несколькими примерами получения различных свойств. Можно добавить отображение уровня заряда батареи, текущего состояния батареи, наличия радиоприемника и фотокамеры, названия сотового оператора и определение текущей ориентации экрана. Все это делает код, приведенный в листинге 10.15.