Partager via


Contacts

Parcourez l’exemple. Parcourir l'exemple

Cet article présent comment vous pouvez utiliser .NET Multi-Platform App UI (.NET MAUI) IContacts pour sélectionner un contact et lire des informations à son sujet.

L’implémentation par défaut de l’interface IContacts est disponible via la propriété Default. L’espace de noms Microsoft.Maui.ApplicationModel.Communication contient à la fois l’interface IContacts et la classe Contacts.

Important

La sélection d’un contact n’est pas prise en charge sur Windows.

En raison d’un conflit d’espace de noms, le type Contacts doit être complet lors du ciblage d’iOS ou macOS : Microsoft.Maui.ApplicationModel.Communication.Contacts. De nouveaux projets ciblent automatiquement ces plateformes, ainsi qu’Android et Windows.

Pour écrire du code qui se compile également pour iOS et macOS, qualifiez entièrement le type Contacts. Vous pouvez aussi fournir une directive using pour mapper l’espace de noms Communication :

using Communication = Microsoft.Maui.ApplicationModel.Communication;

// Code that uses the namespace:
var contact = await Communication.Contacts.Default.PickContactAsync();

Bien démarrer

Pour accéder à la fonctionnalité Contacts, la configuration spécifique à la plateforme suivante est requise.

L’autorisation ReadContacts est obligatoire, et doit être configurée dans le projet Android. Vous pouvez le faire de plusieurs façons, comme indiqué ci-dessous :

  • Ajoutez l’autorisation basée sur l’assembly :

    Ouvrez le fichier Platforms/Android/MainApplication.cs et ajoutez l’attribut d’assembly suivant après les directives using :

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

    - ou -

  • Mettez à jour le manifeste Android :

    Ouvrez le fichier Plateformes/Android/AndroidManifest.xml et ajoutez le code suivant dans le nœud manifest :

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

    - ou -

  • Mettez à jour le manifeste Android dans l’éditeur de manifeste :

    Dans Visual Studio, double-cliquez sur le fichier Plateformes/Android/AndroidManifest.xml pour ouvrir l’éditeur de manifeste Android. Ensuite, sous Autorisations requises vérifiez l’autorisation READ_CONTACTS. Cela met automatiquement à jour le fichier AndroidManifest.xml.

Choisir un contact

Vous pouvez demander à l’utilisateur de choisir un contact en appelant la méthode PickContactAsync(). Une boîte de dialogue de contact s’affiche sur l’appareil, ce qui permet à l’utilisateur de sélectionner un contact. Si l’utilisateur ne sélectionne pas de contact, null est retourné.

private async void SelectContactButton_Clicked(object sender, EventArgs e)
{
    try
    {
        var contact = await Contacts.Default.PickContactAsync();

        if (contact == null)
            return;
        
        string id = contact.Id;
        string namePrefix = contact.NamePrefix;
        string givenName = contact.GivenName;
        string middleName = contact.MiddleName;
        string familyName = contact.FamilyName;
        string nameSuffix = contact.NameSuffix;
        string displayName = contact.DisplayName;
        List<ContactPhone> phones = contact.Phones; // List of phone numbers
        List<ContactEmail> emails = contact.Emails; // List of email addresses
    }
    catch (Exception ex)
    {
        // Most likely permission denied
    }
}

Obtenir tous les contacts

La méthode GetAllAsync retourne une collection de contacts.

public async IAsyncEnumerable<string> GetContactNames()
{
    var contacts = await Contacts.Default.GetAllAsync();

    // No contacts
    if (contacts == null)
        yield break;

    foreach (var contact in contacts)
        yield return contact.DisplayName;
}

Différences selon les plateformes

Cette section décrit les différences propres à la plateforme concernant l’API de contacts.

  • Le paramètre cancellationToken dans la méthode GetAllAsync n’est pas pris en charge.