Статьи

Windows Phone 7: программа запуска и выбора — часть 2

Давайте продолжим наше исследование средств запуска и выбора 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/