Давайте продолжим наше исследование средств запуска и выбора Windows Phone 7.
Я описал пусковые установки Windows Phone 7 здесь .
Chooser является API, который запустил встроенную функциональность для пользователя , чтобы выполнить какую — то задачу и возвращается обратно данные , которые были выбраны пользователем в приложении.
Мы видели, как мы могли бы сделать новый лаунчер как и где нужно, но в случае с «Выборками» игра немного отличается.
Chooser запускает другое приложение (Ваше приложение становится захороненным ), и после того, как намеченное действие завершено, (Ваше приложение вернулось из могилы!) Результаты возвращаются в ваше приложение. Поэтому нам нужно будет объявить объекты Chooser в глобальной области видимости в классе PhoneApplicationPage, создать его экземпляр в ctor страницы и выполнить необходимые сантехнические операции (под этим я подразумеваю обработку необходимых событий и т. Д.)
На данный момент выставлены следующие
1. CameraCaptureTask :
Задача захвата камеры запускает камеру телефона. Теперь пользователь фактически видит приложение камеры телефона, где он / она может нажимать фотографии. После того, как фотография сделана, мы можем сохранить эту фотографию в медиа-библиотеке телефона. Для этого нам нужно добавить ссылку на сборку XNA.Framework.
using Microsoft.Xna.Framework.Media; public partial class page2 : PhoneApplicationPage { CameraCaptureTask cameraCaptureTask; // Constructor public page2() { InitializeComponent(); // Initialize the CameraCaptureTask and assign the Completed handler in the page constructor. cameraCaptureTask = new CameraCaptureTask(); cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed); } private void btnCamera_Click(object sender, RoutedEventArgs e) { cameraCaptureTask.Show(); } void objCameraCapture_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) { MediaLibrary library = new MediaLibrary(); Random r = new Random(1234); Picture pic = library.SavePicture("SavedPicture_" + r.Next(11, 99).ToString() + ".jpg", e.ChosenPhoto); } } }
ScreenShots:
2. PhotoChooserTask :
Как подсказывает Имя, селекторы показывают вам библиотеку изображений WP7, из которой вам разрешено выбирать фотографию, в завершенном событии
вы получаете объект PhotoResult, который содержит потоковое представление выбранной фотографии.
Вы можете делать то, что вы хотите с потоком файлов фотографий.
(Например, его отображение, загрузка его поставщику услуг и т. Д. И т. Д.)
public partial class Page2 : PhoneApplicationPage { PhotoChooserTask objPhotoChooser; public Page2() { InitializeComponent(); objPhotoChooser = new PhotoChooserTask(); objPhotoChooser.Completed += new EventHandler<PhotoResult>(objPhotoChooser_Completed); } private void btnChosePhoto_Click(object sender, RoutedEventArgs e) { objPhotoChooser.Show(); } void objPhotoChooser_Completed(object sender, PhotoResult e) { if (e.TaskResult == TaskResult.OK) MessageBox.Show("Photo Selected"); } }
ScreenShots:
3. SavePhoneNumberTask :
Этот Chooser, как следует из названия, сохраняет номер телефона в контактах телефона. Этот селектор ничего не возвращает. Событие Completed получает аргумент, указывающий состояние операции.
Примечание. Вам необходимо установить
свойство PhoneNumber перед вызовом метода Showrs (Choosers). (Иначе ваш код может не
</span> <pre>public partial class Page2 : PhoneApplicationPage { SavePhoneNumberTask objSavePhoneNumber; public Page2() { InitializeComponent(); objSavePhoneNumber = new SavePhoneNumberTask(); objSavePhoneNumber.Completed += new EventHandler<TaskEventArgs>(objSavePhoneNumber_Completed); } private void btnSavePhoneNumber_Click(object sender, RoutedEventArgs e) { objSavePhoneNumber.PhoneNumber = "123-345-4567"; objSavePhoneNumber.Show(); } void objSavePhoneNumber_Completed(object sender, TaskEventArgs e) { if (e.TaskResult == TaskResult.OK) { MessageBox.Show("Phone Number Saved.."); } } }
4. PhoneNumberChooserTask
PhoneNumberChooserTask Позволяет вам выбрать номер телефона из ваших контактов. Если у контакта несколько телефонных номеров, вы можете выбрать один из телефонных номеров (это не очень удобно)
public partial class Page2 : PhoneApplicationPage { PhoneNumberChooserTask objPhoneNumberChooser; public Page2() { InitializeComponent(); objPhoneNumberChooser = new PhoneNumberChooserTask(); objPhoneNumberChooser.Completed += new EventHandler<PhoneNumberResult>(objPhoneNumberChooser_Completed); } private void btnChoosePhoneNumber_Click(object sender, RoutedEventArgs e) { objPhoneNumberChooser.Show(); } void objPhoneNumberChooser_Completed(object sender, PhoneNumberResult e) { if (e.TaskResult == TaskResult.OK) { MessageBox.Show("Selected :" + e.PhoneNumber); } } }
5. SaveEmailAddressTask
Как следует из названия, этот выбор сохраняет электронную почту в список контактов.
6. EmailAddressChooserTask
Как следует из названия, этот селектор показывает вам список контактов, откуда вы можете выбрать контакт, и ваше приложение получит адрес электронной почты выбранного контакта по умолчанию. Опять же, если доступно несколько адресов электронной почты, пользователю предоставляется возможность выбора адреса электронной почты. Это отправлено обратно в ваше приложение.
Исходный код для примера Launcher и Chooser Demo (скриншоты которого видны выше)
Еще раз, спасибо за вашу поддержку, прочитав этот пост. Продолжайте наблюдать это место для больше на Windows Phone 7.
Следующее сообщение: Создание вашего клиента Twitter для Windows Phone 7 с oAuth
Источник: http://sudheerkovalam.wordpress.com/2010/08/14/windows-phone-7-launcher-and-choosers-part-2/