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.
}