Contacts

Browse sample. Parcourir l’exemple

Cet article explique comment utiliser l’interface utilisateur de l’application multiplateforme .NET (.NET MAUI) IContacts pour sélectionner un contact et en savoir plus sur celui-ci.

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

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 Contacts type doit être complet lors du ciblage d’iOS ou macOS : Microsoft.Maui.ApplicationModel.Communication.Contacts. De nouveaux projets ciblent automatiquement ces plateformes, ainsi que Android et Windows.

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

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

Démarrage

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 using les directives :

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

    - ou -

  • Mettez à jour le manifeste Android :

    Ouvrez le fichier Platforms/Android/AndroidManifest.xml et ajoutez ce qui suit dans le manifest nœud :

    <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 Platforms/Android/AndroidManifest.xml pour ouvrir l’éditeur de manifeste Android. Ensuite, sous Autorisations requises case activée 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 PickContactAsync() méthode. 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 GetAllAsync méthode 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 de plateforme

Cette section décrit les différences spécifiques à la plateforme avec l’API contacts.

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