酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows PhoneでAddressChooserTaskを使ってピープルハブから連絡先を取得する

概要

Windows Phone OS 7.1にて追加されたセレクターです。連絡先を取得するダイアログを表示します。

名前空間:Microsoft.Phone.Tasks

System.Object
 +--Microsoft.Phone.Tasks.ChooserBase
  +--Microsoft.Phone.Tasks.AddressChooserTask

Tips

AddressChooserTaskを使ってピープルハブから住所を選択する

AddressChooserTaskは、名前と住所を取得するセレクターです。AddressChooserTaskクラスのShowメソッドを実行すると、ピープルハブが起動します。

ピープルハブの連絡先の中から、ユーザーが選択した連絡先の住所を取得することが可能です。
連絡先を選択、またはユーザーによってキャンセルされると、Completedイベントハンドラが呼び出しされ、住所の取得に成功したかどうかを判断することが出来ます。

  private void btnEmailAddressChooserTask_Click(object sender, RoutedEventArgs e)
  {
      var task = new Microsoft.Phone.Tasks.EmailAddressChooserTask();
      task.Show();
  }

動かしてみた。

取得した結果を得たい場合は以下のようにします。

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace AddressChooserTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new AddressChooserTask();
            task.Completed += new EventHandler<AddressResult>(task_Completed);

            try {
                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }

        void task_Completed(object sender, AddressResult e) {
            switch (e.TaskResult) {
                case TaskResult.OK:
                    // 住所の取得成功
                    MessageBox.Show(e.DisplayName + "\nAddress: " + e.Address);
                    break;
                case TaskResult.Cancel:
                    // ユーザーによって取得をキャンセルされた
                    break;
                case TaskResult.None:
                    // 住所を取得できなかった
                    break;
            }
        }
    }
}

参照