Задачи запуска можно описать как «запустил и забыл». Их можно использовать для отправки e-mail или СМС, осуществления звонка на какой-либо номер, открытия браузера и.т.д. Я опишу назначение каждой из существующих задач запуска в данной статье, а в конце её Вы можете скачать код примеров использования каждой из задач.
При отладке приложений, в которых используются задачи запуска, надо учесть, что на эмуляторе многие задачи ничего реально не делают. Например, EmailComposeTask – отправка e-mail предполагает, что на телефоне у Вас настроена нужная учётная запись электронной почты. Поскольку на эмуляторе такую настройку произвести нельзя, реально отправить e-mail не получится. Также и, например, со звонком. Реальной sim карты в эмуляторе нет. Но Вам будет показан пользовательский интерфейс, эмулирующий реальный звонок. В целях тестирования данного интерфейса вполне достаточно. Тоже относится и к другим задачам запуска.
Все задачи определены в пространстве имён Microsoft.Phone.Tasks. Поэтому было бы целесообразно вначале подключить его:1 using Microsoft.Phone.Tasks;
Далее приведу список доступных задач запуска:
EmailComposeTask – позволяет отправить e-mail. На телефоне должен быть настроен аккаунт электронной почты.
MediaPlayerLauncher – запускает встроенный в Windows Phone плеер и проигрывает заданный файл.
PhoneCallTask – Запускает встроенный диалог операционной системы для осуществления звонка. Есть возможность задать номер и отображаемое имя абонента. Звонок не осуществляется, пока пользователь не нажмёт кнопку «позвонить».
SearchTask – используется для запуска поиска в Bing из Вашего приложения.
SmsComposeTask – запускает приложение для отправки сообщений. Можно определить получателя и тело сообщения, но пользователь должен сам нажать кнопку «Отправить».
WebBrowserTask – запускает браузер и переходит на заданный адрес.
MarketplaceHubTask – запускает Windows Phone Marketplace. Можно определить категорию приложений, которая будет отображаться.
MarketplaceDetailTask – запускает Windows Phone Marketplace и отображает данные о заданном продукте.
MarketplaceReviewTask – запускает Windows Phone Marketplace и отображает данные о текущем приложении.
MarketplaceSearchTask – запускает Windows Phone Marketplace на странице поиска. Можно определить поисковый запрос.
В списке задач запуска, приведённом выше, имя задачи является ссылкой на соответствующую статью в MSDN. Где можно посмотреть детальное описание каждой из задач.
Запуск задач
Каждая из задач запуска имеет свои свойства, но после их установки Вам всегда надо вызвать метод .Show().
Код
//Пример использования задачи SMSComposeTask:
SmsComposeTask sct = new SmsComposeTask();
sct.To = "+79261234567";
sct.Body = "СМС от Windows Phone 7.";
sct.Show();
//Пример использования PhoneCallTask:
PhoneCallTask pct = new PhoneCallTask();
pct.DisplayName = "Компания Рога и Копыта";
pct.PhoneNumber = "+74951234567";
pct.Show();
Задачи выбора.
В отличие от задач запуска, задачи выбора что-то возвращают приложению, будь то картинка с камеры или e-mail адрес из адресной книги. Задач выбора нет так много, ниже представлен из список.
CameraCaptureTask – открывает системный диалог работы с камерой и возвращает Вашему приложению картинку, снятую пользователем.
EmailAddressChooserTask – позволяет пользователю выбрать e-mail адрес из адресной книги для использования в Вашем приложении.
PhoneNumberChooserTask – позволяет пользователю выбрать телефонный номер из адресной книги для использования в Вашем приложении.
PhotoChooserTask – позволяет пользователям выбрать фотографию для использования в Вашем приложении.
Использование задач выбора.
Каждая из задач выбора имеет свои свойства, но после их установки Вам всегда надо вызвать метод .Show(). Важным отличием задач выбора от задач запуска является то, что перед вызовом метода Show() необходимо подписаться на событие завершения выбора. В обработчике данного события можно получить данные, выбранные пользователем.Пример использования CameraCaptureTask:
Код
CameraCaptureTask cct = new CameraCaptureTask();
cct.Completed += new EventHandler(cct_Completed);
cct.Show();
//Код обработчика события завершения:
void cct_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(e.ChosenPhoto);
image1.Source = bmp;
}
}
Когда Вы вызовите метод .Show() у CameraCaptureTask, отобразится стандартный интерфейс фотографирования, пользователь сделает фото и в Вашем приложении произойдёт событие, в обработчике которого данное фото можно получить. При отладке приложения в эмуляторе вместо изображения с камеры Вы увидите картинку, на которой черный блок перемещается по экрану. Даже, если на Вашем компьютере есть web камера, она, к сожалению, не будет использоваться эмулятором телефона. В принципе, даже перемещающегося прямоугольника достаточно в целях отладки, но я рекомендую хотя бы немного протестировать приложение на реальном телефоне перед публикацией приложения в Marketplace, чтобы понять какую картинку даёт реальная камера.
Код
PhotoChooserTask pct = new PhotoChooserTask();
pct.Completed += new EventHandler(pct_Completed);
pct.Show();