Xamarin.Essentials: Contactos

La clase Contacts permite a un usuario seleccionar un contacto y recuperar información sobre él.

Introducción

Para empezar a usar esta API, lea la guía de introducción para Xamarin.Essentials con el fin de asegurarse de que la biblioteca está correctamente instalada y configurada en los proyectos.

Para acceder a la función de Contacts, se requiere la siguiente configuración específica para la plataforma.

El permiso ReadContacts es necesario y se debe configurar en el proyecto Android. Se puede agregar de las siguientes maneras:

Abra el archivo AssemblyInfo.cs de la carpeta Propiedades y agregue lo siguiente:

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

O BIEN, actualice el manifiesto de Android:

Abra el archivo AndroidManifest.xml de la carpeta Propiedades y agregue lo siguiente dentro del nodo manifest.

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

O haga clic con el botón derecho en el proyecto de Android y abra las propiedades del proyecto. En Manifiesto de Android, busque el área Permisos requeridos: y active este permiso. Esto actualizará automáticamente el archivo AndroidManifest.xml.

Seleccionar un contacto

Al llamar a Contacts.PickContactAsync(), aparecerá el cuadro de diálogo de contacto y permitirá al usuario recibir información sobre el usuario.

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

Obtener todos los contactos

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

Diferencias entre plataformas

  • El parámetro cancellationToken del método GetAllAsync solo se usa en UWP.

API