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