Прием и обработка SMS-сообщений
Прием и обработка SMS-сообщений
Итак, мы научились отправлять 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).
Теперь следует повторить операцию. Только на этот раз надо взвести флажок Пометить как срочное. В этом случае при отправке сообщения в начало текста вставляется дополнительное слово «Срочно». После нажатия кнопки приложение должно перехватить прибытие SMS-сообщения, так как теперь оно содержит ключевое слово, которое определялось в параметре StartWith. Как только это произойдет, сообщение будет удалено, а пользователь получит уведомление о прибытии срочного сообщения (рис. 10.8). Но следует помнить, что для перехвата сообщения приложение должно быть запущено.
Рис. 10.8. Прием срочного сообщения
Данный пример предоставляет разработчику весьма широкие возможности. Представьте себе, что ваша компания рассылает своим сотрудникам особым образом отформатированные сообщения. Программа может обработать эти сообщения и автоматически создать новые записи в списках Контакты или Встречи. И теперь сотруднику достаточно только взглянуть на экран, чтобы увидеть приятную новость, что сегодня компания выдает премию, за которой нужно подъехать в офис.
ВНИМАНИЕ
Для примеров, связанных с SMS-сообщениями, нужно использовать эмуляторы и устройства, имеющие возможность работы с SMS.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Прием импульса
Прием импульса Прием импульса выполняется очень просто: короткое, четко определенное сообщение передается функции MsgReceive(), как будто поток отправил обычное стандартное сообщение. Единственное различие состоит в том, что вы не сможете применить функцию MsgReply() к такому
Обработка сообщений
Обработка сообщений Как только мы зарегистрировали один или более префиксов, мы должны быть готовы принимать сообщения от клиентов. Это делается «обычным» способом с помощью функции MsgReceive(). Существуют менее 30 четко определенных типов сообщений, которые администратор
Обработка локальных сообщений
Обработка локальных сообщений Одна из проблем, возникающих при работе почтового сервера, состоит в том, что вам необходимо сообщать ему, какие адреса должны рассматриваться как локальные. Предположим, что почтовый сервер выполняется на компьютере franklin.threeroomco.com. По
Прием и отправка сообщений
Прием и отправка сообщений Общаться, общаться! И немедленно. Благо именно эта функция в программе главная… А сам процесс общения просто до банальности. Хотите написать письмо – щелкаете по имени нужного контакта. Можно вызвать окно сообщений и из контекстного меню
Прием и отправка сообщений
Прием и отправка сообщений С приемом сообщений по «аське» проблем возникнуть не должно: в момент, когда на ваш компьютер поступает письмо от одного из пользователей ICQ, цветок программы в системном трее сменяется на значок подмигивающей записки. Щелкните по нему – и
Передача и прием дейтаграмм UDP
Передача и прием дейтаграмм UDP Класс QUdpSocket может использоваться для отправки и приема дейтаграмм UDP. UDP — это ненадежный, ориентированный на дейтаграммы протокол. Некоторые приложения применяют протокол UDP, поскольку с ним легче работать, чем с протоколом TCP. По протоколу
1.1.8. Обработка сообщений с помощью VCL
1.1.8. Обработка сообщений с помощью VCL При использовании VCL в простых случаях самостоятельно работать с оконными сообщениями нет нужды, поскольку практически все можно сделать с помощью свойств, методов и событий компонентов. Тем не менее, некоторые сообщения приходится
Получение и пересылка сообщений. Создание ответных сообщений
Получение и пересылка сообщений. Создание ответных сообщений Чтобы получить новую почту, выполните команду главного меню Сервис ? Отправить/Получить ? Доставить почту либо нажмите клавишу F9. Все полученные почтовые сообщения будут помещены в папку Входящие и помечены
Прием поступающих событий
Прием поступающих событий Использование событий в C# позволяет также упростить регистрацию обработчиков событий вызывающей стороны. Вместо необходимости указывать пользовательские вспомогательные методы, вызывающая сторона просто использует операции += и -= (которые в
Обработка сообщений
Обработка сообщений Как вы знаете из предыдущих томов серии “Библиотека системного программиста”, работа приложений операционной системы Windows основана на обработке сообщений. Когда пользователь работает с устройствами ввода/вывода компьютера, например клавиатурой
Обработка командных сообщений
Обработка командных сообщений В разделе “Долгий путь сообщения” главы “Введение в MFC” мы начали рассказ о том, как обрабатываются командные сообщения. Теперь изучим обработку командных сообщений более подробно.Процесс обработки командных сообщений значительно
Прием «кулисы»
Прием «кулисы» Этот эффектный композиционный прием заключается в том, что объект помещают в своего рода «рамку». Очень интересные фотографии получаются, когда съемка ведется из арки ворот, из пещеры, да и просто сквозь ветви куста, – при этом объект получается
Секретный прием
Секретный прием Скажу вам по секрету: нужно записывать свои цели. Пока они находятся у вас в голове, они не так конкретны, как вам кажется. Они слишком туманны. Невозможно оценить их, рассказать о них кому-нибудь. С ними невозможно работать.Процесс изложения на бумаге
Прием и просмотр сообщений
Прием и просмотр сообщений Сразу же после запуска Почта Windows проверит, есть ли соединение с Интернетом. При его отсутствии будет предложено подключиться к Сети или работать в автономном режиме. После установки соединения программа проверит наличие новой корреспонденции
Практическая работа 22. Создание, отправка и прием почтовых сообщений
Практическая работа 22. Создание, отправка и прием почтовых сообщений Эту работу лучше выполнять вместе с коллегой или знакомым, чтобы можно было обмениваться электронными письмами. Если же у вас нет такой возможности, придется отправлять письма самому себе.Задание 1.