酢ろぐ!

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

Windows PhoneでSavePhoneNumberTaskを使って電話番号を登録する

概要

Windows Phone OS 7.0以降で使用可能です。電話番号を登録するダイアログを表示します。

名前空間:Microsoft.Phone.Tasks

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

Tips

SavePhoneNumberTaskを使って電話番号を登録する

SavePhoneNumberTaskは、電話番号を保存するセレクターです。SavePhoneNumberTaskクラスのShowメソッドを実行すると、ピープルハブが起動します。

電話番号を既にある連絡先に追加するのか、登録しているアカウント(Windows LiveやGoogle等)に登録するのか選択することが可能です。

電話番号が登録、またはユーザーによってキャンセルされると、Completedイベントハンドラが呼び出しされ、電話番号の保存に成功したかどうかを判断することが出来ます。

  private void btnSavePhoneNumberTask_Click(object sender, RoutedEventArgs e)
  {
      var task = new Microsoft.Phone.Tasks.SavePhoneNumberTask() { PhoneNumber = "1234567890" };
      task.Show();
  }

動かしてみた。

登録した結果も含めて取得したい場合には下記のようになります。

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

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

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

            try {
                task.PhoneNumber = "090-1234-5678";
                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }

        void task_Completed(object sender, TaskEventArgs e) {
            switch (e.TaskResult) {
                case TaskResult.OK:
                    // 電話番号の保存に成功
                    break;
                case TaskResult.Cancel:
                    // ユーザーによって保存をキャンセルされた
                    break;
                case TaskResult.None:
                    // 電話番号は保存されなかった
                    break;
            }
        }
    }
}