[UWP][連絡先] 複数の連絡先を取得する

スポンサーリンク

今回は複数の連絡先を取得する方法を見ていきます。

まず連絡先ピッカーですがPickContactAsync ではなく PickContactsAsync を使用します。ぱっと見ただけでは違いがわかりませんが、よく見ると複数形になっていることがわかります。

ピッカーで複数の連絡先を取得した結果は IList<Contact> 型の変数へ格納します。リストなので取得はforeachを使用します。

以下にコード例を示します。

public IList<Contact> contacts;

private async void btnGetContact_Click(object sender, RoutedEventArgs e)
{
    var picker = new Windows.ApplicationModel.Contacts.ContactPicker();

    // 選択モードをFieldsに設定
    picker.SelectionMode = Windows.ApplicationModel.Contacts.ContactSelectionMode.Fields;

    // 連絡先ピッカーで取得するフィールドを指定
    picker.DesiredFieldsWithContactFieldType.Add(
        Windows.ApplicationModel.Contacts.ContactFieldType.Address);
    picker.DesiredFieldsWithContactFieldType.Add(
        Windows.ApplicationModel.Contacts.ContactFieldType.PhoneNumber);

    // 複数の連絡先を取得する
    contacts = await picker.PickContactsAsync();

    // 連絡先が選択されている場合
    if (contacts != null && contacts.Count > 0)
    {
        // 1件ずつ連絡先を取得する
        foreach (Contact contact in contacts)
        {
            if (contact.Emails.Count > 0)
            {
                textBlockEmail.Text = contact.Emails[0].Address;
            }
            else if (contact.Phones.Count > 0)
            {
                textBlockPhone.Text = contact.Phones[0].Number;
            }
        }
    }
}

 

コメント

タイトルとURLをコピーしました