Читаем Программирование КПК и смартфонов на .NET Compact Framework полностью

Рис. 10.7. Прием SMS-сообщения

<p>Прием и обработка SMS-сообщений</p>

Итак, мы научились отправлять SMS-сообщения из своей программы. Но было бы неплохо научить приложения принимать подобные сообщения. Для приема сообщений существует пространство имен MessageInterception, которое находится в сборке Microsoft.WindowsMobilе.PocketOutlook.

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

С этой возможностью стоит познакомиться ближе. После создания нового проекта InterceptionSMS_CS, нужно добавить на форму кнопку для отсылки SMS-сообщения, флажок chkAlert для установки флага срочности и текстовое поле, в котором будет содержаться текст SMS-сообщения. Затем надо задать ссылки на уже применявшиеся ранее сборки Microsoft.WindowsMobile и Microsoft.WindowsMobile.PocketOutlook. Код, отвечающий за обработку принятых сообщений, приведен в листинге 10.11

Листинг 10.11

using Microsoft.WindowsMobile;

using Microsoft.WindowsMobile.PocketOutlook;

using Microsoft.WindowsMobile.PocketOutlook.MessageInterception;

// Объявляем переменную

private MessageInterceptor smsInterceptor;

private void smsInterceptor_MessageReceived(object sender,

 MessageInterceptorEventArgs e) {

 // Обработка входящего сообщения

 MessageBox.Show("К вам пришло срочное сообщение");

}

private void butSendSMS_Click(object sender, EventArgs e) {

 SmsMessage message = new SmsMessage();

 // Номер получателя

 message.To.Add(new Recipient("4250010001"));

 // Текст сообщения

 if (chkAlert.Checked) {

  // Если взведен флажок, то добавляем слово Срочно!

  message.Body = "Срочно! " + txtSMSText.Text;

 } else {

  message.Body = txtSMSText.Text;

 }

 // Посылаем сообщение

 message. Send();

}

private void Form1_Load(object sender, EventArgs e) {

 smsInterceptor =

  new MessageInterceptor(InterceptionAction.NotifyAndDelete, true);

 smsInterceptor.MessageCondition =

  new MessageCondition(MessageProperty.Body,

  MessagePropertyComparisonType.StartsWith, "Срочно", true);

 smsInterceptor.MessageReceived +=

  new MessageInterceptorEventHandler(smsInterceptorMessageReceived);

}

При помощи ключевого слова using было объявлено несколько пространств имен, также была добавлена переменная smsInterceptor, после чего можно было объявлять функцию обработки сообщения smsInterceptor_MessageReceived. При получении SMS-сообщения с определенным текстом эта функция выводит соответствующую строку.

Но самое интересное происходит в событии Form_Load. Как только устройство принимает SMS-сообщение, оно перехватывается приложением для дальнейшей обработки. Если сообщение начинается словом «Срочно», то пользователь предупреждается о прибытии важного сообщения, после чего это сообщение удаляется. Подобное поведение обеспечивает параметр NotifyAndDelete.

После запуска приложения на форме будут отображены текстовое поле и флажок. После ввода текста сообщения нужно нажать кнопку Послать SMS. Код отправки сообщения позаимствован из предыдущего примера. Система должна отреагировать на прибытие нового сообщения с помощью специального уведомления, которое мы видели при разборе предыдущего примера (см. рис. 10.7).

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных