// Кому письмо

 msg.To.Add(recipient);

 // Тема письма

 msg.Subject = 'О вашей книге';

 // Текст письма

 msg.BodyText = 'Спасибо за книгу';

 msg.Send('ActiveSync');

}

SMS-сообщения

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

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

Листинг 10.9.

private void butSendSMS_Click(object sender, EventArgs e) {

 ChooseContactDialog contactDialog = new ChooseContactDialog();

 contactDialog.Title = 'Выберите получателя';

 if (contactDialog.ShowDialog() == DialogResult.OK) {

  // Создаем SMS-сообщение

  SmsMessage message = new SmsMessage(

   contactDialog.SelectedContact.MobileTelephoneNumber,

   'Купи хлеба. Жена');

  message.RequestDeliveryReport = true;

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

  message.Send();

 }

}

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

Здесь я хочу сделать небольшое отступление и открыть вам большой секрет. Разработчик может посылать SMS-сообщения самому себе при помощи эмулятора! Если послать SMS-сообщение из эмулятора на телефонный номер 4250010001, то оно вернется на эмулятор (рис. 10.7).

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

ПРИМЕЧАНИЕ

При отладке приложения в эмуляторе надо использовать целевое устройство типа «Phone Edition». Если проверять пример в обычном эмуляторе, то будет отображено сообщение об ошибке «Could not load sms.dll». Впрочем, это не удивительно. Если эмулятор не имеет телефонных функций, то как можно отправлять SMS-сообщение?

Листинг 10.10

private void butSendSMS2_Click(object sender, EventArgs e) {

 SmsMessage message = new SmsMessage();

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

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

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

 message.Body = 'Позвони домой';

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

 message.Send();

}

Результат выполнения этого кода приведен на рис. 10.7.

Рис. 10.7. Прием 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'));

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату