簡體   English   中英

如何在Windows 10 UWP中訪問聯系人?

[英]How to access Contacts in Windows 10 UWP?

我想訪問聯系人數據,所以我做了一些研究,並從MSDN找到了以下文章

訪問聯系人

從這篇文章中,我讀了選擇多個聯系人部分,我使用了它,但每次,電子郵件和電話值都為空。

我訪問聯系人的代碼如下:

var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
contactPicker.CommitButtonText = "Select";
contacts = await contactPicker.PickContactsAsync();

PhoneContactsList.Items.Clear();

if (contacts != null && contacts.Count > 0)
{
    PhoneContactsList.Visibility = Windows.UI.Xaml.Visibility.Visible;
    foreach (Contact contact in contacts)
    {
        ContactData eachContact = new ContactData();
        eachContact.DisplayName = contact.DisplayName;
        if (contact.Emails.Count > 0)
        {
            eachContact.EmailAddress = contact.Emails[0].Address;
        }
        else if (contact.Phones.Count > 0)
        {
            eachContact.PhoneNumber = contact.Phones[0].Number;
        }
        contactsData.Add(eachContact);
    }
    PhoneContactsList.ItemsSource = contactsData;
}

請在這里建議我做錯了什么?

更新

當我調試代碼並檢查我看不到任何值時,只顯示的是System._ComObject 我不知道這意味着什么。

您需要按要求的字段過濾聯系人:

var contactPicker = new ContactPicker();
contactPicker.CommitButtonText = "Select";
contactPicker.SelectionMode = ContactSelectionMode.Fields;
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.PhoneNumber);
contactPicker.DesiredFieldsWithContactFieldType.Add(ContactFieldType.Email);

var contacts = await contactPicker.PickContactsAsync();
if (contacts != null && contacts.Count > 0)
{
    foreach (Contact contact in contacts)
    {
        Debug.WriteLine(contact.DisplayName + contact.Emails[0].Address);
    }
}

ps System._ComObject是內部本機對象。 您必須打開本機調試才能使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM