Чтение онлайн

ЖАНРЫ

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:

 // Выводим диалоговое окна на экран

 contactDialog.ShowDialog;

 // Показываем выбранный контакт

 MessageBox.Show(contactDialog.SelectedContactName, "Выбранный контакт");

}

Электронная почта

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

Для этих целей используются соответствующие пространства имен

Microsoft.WindowsMobile.PocketOutlook.EmailAccount
и
Microsoft.WindowsMobile.PocketOutlook.SmsAccount
. Классы из этих пространств имен позволяют легко интегрировать отправку сообщений в ваши приложения. Например, класс
EmailAccount
позволяет создавать электронные письма и присоединять к ним файлы.

В следующем примере демонстрируется вызов диалогового окна

ChooseContactDialog
для выбора нужного адресата из списка контактов, которому будет отправлено электронное письмо. Приложение создаст сообщение, в коде будет указана и тема письма.

Также в письмо будет добавлен вложенный файл, после чего сообщение будет отправлено выбранному ранее лицу. Все эти действия проиллюстрированы листингом 10.7.

Листинг 10.7

private void butSendEmail_Click(object sender, EventArgs e) {

 ChooseContactDialog contactDialog = new ChooseContactDialog;

 contactDialog.Title = "Выберите контакт для отправки email";

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

EmailMessage message = new EmailMessage;

message.To.Add(

new Recipient(contactDialog.SelectedContact.Email1Address));

message.Subject = "С днем рождения";

message.BodyText =

"Уважаемый Владимир Владимирович! Поздравляю вас с днем рождения!

Посылаю вам открытку с видами Петербурга. Ваша Люда.";

message.Attachments.Add(

new Attachment(@"\My Documents\piter.jpg"));

using (OutlookSession session = new OutlookSession) {

session.EmailAccounts[0].Send(message);

session.Dispose;

}

 }

}

После запуска программы и нажатия кнопки

Послать письмо
будет открыто стандартное окно
Контакты
, где можно выбрать адресата. После выбора получателя по его электронному адресу будет отправлено электронное письмо с заданным содержанием.

Если надо отправить электронное письмо адресату, который не внесен в адресную книгу, то пример надо переработать. Новый код приведен в листинге 10.8.

Листинг 10.8

private void butSendEmail2_Click(object sender, EventArgs e) {

 Recipient recipient = new Recipient("alexander.klimoff@gmail.com");

 EmailMessage msg = new EmailMessage;

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

 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.

Поделиться с друзьями: