Поделиться через


Xamarin.Essentials:Контакты

Класс Contacts позволяет пользователю выбрать контакт и получить сведения о нем.

Начало работы

Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.

Для доступа к функции Contacts нужно создать описанную ниже конфигурацию для конкретной платформы.

Требуется разрешение ReadContacts, которое следует настроить в проекте Android. Для этого можно применить любой из следующих методов:

Откройте файл AssemblyInfo.cs в папке Свойства и добавьте в него:

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

ИЛИ обновите манифест Android:

Откройте файл AndroidManifest.xml в папке Properties и добавьте приведенный ниже код в узел 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.
}

Различия между платформами

  • Параметр cancellationToken в методе GetAllAsync используется только в UWP.

API