今回は複数の連絡先を取得する方法を見ていきます。
まず連絡先ピッカーですが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; } } } }
Please follow and like us:
コメント