Xamarin.Essentials:联系人

通过 Contacts 类,用户可以选择联系人并检索联系人的相关信息。

入门

若要开始使用此 API,请阅读 Xamarin.Essentials 的入门指南,确保在项目中正确安装和设置库。

若要访问 Contacts 功能,需要以下特定于平台的设置。

需要具有 ReadContacts 权限,并且必须在 Android 项目中进行配置。 可以通过以下方法添加此权限:

打开 Properties 文件夹下的 AssemblyInfo.cs 文件并添加 :

[assembly: UsesPermission(Android.Manifest.Permission.ReadContacts)]

或更新 Android 清单:

打开 Properties 文件夹下的 AndroidManifest.xml 文件,并在“manifest”节点内添加以下代码 。

<uses-permission android:name="android.permission.READ_CONTACTS" /> />

或右键单击 Android 项目并打开项目的属性。 在“Android 清单”下找到“所需权限:”区域,然后选中该权限。 这样会自动更新 AndroidManifest.xml 文件。

选取联系人

调用 Contacts.PickContactAsync() 时,将显示联系人对话框,并允许用户接收用户的相关信息。

try
{
    var contact = await Contacts.PickContactAsync();

    if(contact == null)
        return;

    var id = contact.Id;
    var namePrefix = contact.NamePrefix;
    var givenName = contact.GivenName;
    var middleName = contact.MiddleName;
    var familyName = contact.FamilyName;
    var nameSuffix = contact.NameSuffix;
    var displayName = contact.DisplayName;
    var phones = contact.Phones; // List of phone numbers
    var emails = contact.Emails; // List of email addresses
}
catch (Exception ex)
{
    // Handle exception here.
}

获取所有联系人

ObservableCollection<Contact> contactsCollect = new ObservableCollection<Contact>();

try
{
    // cancellationToken parameter is optional
    var cancellationToken = default(CancellationToken);
    var contacts = await Contacts.GetAllAsync(cancellationToken);

    if (contacts == null)
        return;

    foreach (var contact in contacts)
        contactsCollect.Add(contact);
}
catch (Exception ex)
{
    // Handle exception here.
}

平台差异

  • GetAllAsync 方法中的 cancellationToken 参数仅用于 UWP。

API