SaveContactTaskを使って連絡先を登録する

SaveContactTaskは、ピクチャーハブに連絡先を保存するセレクターです。SaveContactTaskクラスのShowメソッドを実行すると、ピープルハブが起動します。

Showメソッドを呼ぶ前に会社名(Companyプロパティ)や名前(FirstName、LastNameプロパティ)、電話番号(MobilePhoneプロパティ)などに、あらかじめ入力しておくことが可能です。

設定が可能な項目は27項目あり、本記事にて全ての項目を説明する事が出来ませんので、MSDNライブラリのSaveContactTask Propertiesを参照して頂ければと思います。

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

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;
 
namespace SaveContactTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new SaveContactTask();
            task.Completed += new EventHandler<SaveContactResult>(task_Completed);
 
            try {
                // 登録したい項目を事前に入力しておくことも可能
                task.Company = "Softbuild";
                task.FirstName = "Kenji";
                task.LastName = "Wada";
                task.MobilePhone = "090123456789";
                task.Website = "http://ch3cooh.jp/";
 
                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }
 
        void task_Completed(object sender, SaveContactResult e) {
            switch (e.TaskResult) {
                case TaskResult.OK:
                    // 連絡先の保存に成功
                    break;
                case TaskResult.Cancel:
                    // ユーザーによって保存をキャンセルされた
                    break;
                case TaskResult.None:
                    // 連絡先は保存されなかった
                    break;
            }
        }
    }
}
Imports System.Windows
Imports Microsoft.Phone.Controls
Imports Microsoft.Phone.Tasks
 
Namespace SaveContactTaskTest
	Public Partial Class MainPage
		Inherits PhoneApplicationPage
		' コンストラクター
		Public Sub New()
			InitializeComponent()
		End Sub
 
		Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
			Dim task = New SaveContactTask()
			task.Completed += New EventHandler(Of SaveContactResult)(AddressOf task_Completed)
 
			Try
				' 登録したい項目を事前に入力しておくことも可能
				task.Company = "Softbuild"
				task.FirstName = "Kenji"
				task.LastName = "Wada"
				task.MobilePhone = "090123456789"
				task.Website = "http://ch3cooh.jp/"
 
				task.Show()
			Catch ex As InvalidOperationException
				MessageBox.Show(ex.Message)
			End Try
		End Sub
 
		Private Sub task_Completed(sender As Object, e As SaveContactResult)
			Select Case e.TaskResult
				Case TaskResult.OK
					' 連絡先の保存に成功
					Exit Select
				Case TaskResult.Cancel
					' ユーザーによって保存をキャンセルされた
					Exit Select
				Case TaskResult.None
					' 連絡先は保存されなかった
					Exit Select
			End Select
		End Sub
	End Class
End Namespace

Windows Phoneの実機に、Windows LiveやGoogleなどのクラウド上に連絡先を保存可能なアカウントの設定を行っている場合は、追加を行いたいサービス(Windows LiveやGoogle)が表示されるのでいずれかを選択します。

クラウド上に保存可能なアカウントが設定されていない場合は、下図のように電話機本体に保存が可能です。

参照