UWP联系人选择器仅选择Windows 10移动版中联系人的姓名字段

问题描述 投票:0回答:1

使用here中所述的方法在UWP应用中使用联系人选择器来选择联系人在PC上正常工作,而在移动设备上,它只能返回名称字段(名称,名字,姓氏,全名),但不能返回其他地址,例如地址,电话,电子邮件等。

var contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
Contact contact = await contactPicker.PickContactAsync();
if (contact != null)
    {
    string xx = "";

        if (contact.Addresses.Count > 0) 
            {
                if (!String.IsNullOrEmpty(contact.Addresses[0].Country)) xx+="Country: "+ contact.Addresses[0].Country+"\n";
                if (!String.IsNullOrEmpty(contact.Addresses[0].Description)) xx+="Description: "+ contact.Addresses[0].Description+"\n";
                if (!String.IsNullOrEmpty(contact.Addresses[0].Locality)) xx+="Locality: "+ contact.Addresses[0].Locality+"\n";
                if (!String.IsNullOrEmpty(contact.Addresses[0].PostalCode)) xx+="PostalCode: "+ contact.Addresses[0].PostalCode+"\n";
                if (!String.IsNullOrEmpty(contact.Addresses[0].Region)) xx+="Region: "+ contact.Addresses[0].Region+"\n";
                if (!String.IsNullOrEmpty(contact.Addresses[0].StreetAddress)) xx+="StreetAddress: "+ contact.Addresses[0].StreetAddress+"\n";
            }
        if (!String.IsNullOrEmpty(contact.DisplayName)) xx+="DisplayName: "+ contact.Addresses[0].DisplayName+"\n";
        if (!String.IsNullOrEmpty(contact.DisplayNameOverride)) xx+="DisplayNameOverride: "+ contact.Addresses[0].DisplayNameOverride+"\n";
        if (contact.Emails.Count > 0)
            {
                if (!String.IsNullOrEmpty(contact.Emails[0].Address)) xx+="Email: "+ contact.Addresses[0].Address+"\n";
            }
        if (!String.IsNullOrEmpty(contact.FirstName)) xx+="FirstName: "+ contact.Addresses[0].FirstName+"\n";
        if (!String.IsNullOrEmpty(contact.FullName)) xx+="FullName: "+ contact.Addresses[0].FullName+"\n";
        if (!String.IsNullOrEmpty(contact.LastName)) xx+="LastName: "+ contact.Addresses[0].LastName+"\n";
        if (!String.IsNullOrEmpty(contact.MiddleName)) xx+="MiddleName: "+ contact.Addresses[0].MiddleName+"\n";
        if (!String.IsNullOrEmpty(contact.Name)) xx+="Name: "+ contact.Addresses[0].Name+"\n";
        if (!String.IsNullOrEmpty(contact.Nickname)) xx+="Nickname: "+ contact.Addresses[0].Nickname+"\n";
        if (contact.Phones.Count > 0)
            {
                if (!String.IsNullOrEmpty(contact.Phones[0].Number)) xx+="Phone: "+ contact.Addresses[0].Number+"\n";
            }

        textBlock.Text = xx;
    }

可以在PC上正常工作,并显示所选联系人的数据。但是,在运行Win 10 Mobile的移动设备上运行它时,它仅显示所选联系人的姓名。

uwp win-universal-app windows-10-universal
1个回答
0
投票

我测试了Document中的代码,该软件可以显示联系人姓名,电子邮件地址,电话号码和其他信息。

通过与您的代码进行比较,我发现您可能缺少DesiredFieldsWithContactFieldType的定义。

© www.soinside.com 2019 - 2024. All rights reserved.