Teilen über


Kontakte

Beispiel durchsuchen.Durchsuchen Sie das Beispiel

In diesem Artikel wird beschrieben, wie Sie die .NET Multiplatform App UI(.NET MAUI) IContacts-Schnittstelle verwenden können, um einen Kontakt auszuwählen und Informationen über ihn zu lesen.

Die Standardimplementierung der IContacts-Schnittstelle ist über die Default-Eigenschaft verfügbar. Sowohl die IContacts-Schnittstelle als auch die Contacts-Klasse sind im Microsoft.Maui.ApplicationModel.Communication-Namespace enthalten.

Wichtig

Das Auswählen eines Kontakts wird unter Windows nicht unterstützt.

Aufgrund eines Namespacekonflikts muss der Contacts-Typ vollständig qualifiziert sein, wenn er auf iOS oder macOS ausgerichtet ist: Microsoft.Maui.ApplicationModel.Communication.Contacts. Neue Projekte zielen automatisch auf diese Plattformen sowie auf Android und Windows ab.

Um Code zu schreiben, der für iOS und macOS kompiliert werden kann, müssen Sie den Contacts-Typ vollständig qualifizieren. Stellen Sie alternativ eine using-Anweisung bereit, um den Communication-Namespace zuzuordnen:

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

Erste Schritte

Für den Zugriff auf die Kontakte-Funktionalität ist die folgende plattformspezifische Einrichtung erforderlich.

Die Berechtigung ReadContacts ist obligatorisch und muss im Android-Projekt konfiguriert werden. Das Hinzufügen erfolgt folgendermaßen:

  • Fügen Sie die assemblybasierte Berechtigung hinzu:

    Öffnen Sie die Datei Platforms/Android/MainApplication.cs und fügen Sie das folgende Assembly-Attribut nach den using-Anweisungen hinzu:

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

    – oder –

  • Aktualisieren des Android-Manifests

    Öffnen Sie die Datei Platforms/Android/AndroidManifest.xml und fügen Sie Folgendes im Knoten manifest hinzu:

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

    - oder -

  • Aktualisieren Sie das Android-Manifest im Manifest-Editor:

    Doppelklicken Sie in Visual Studio auf die Datei Platforms/Android/AndroidManifest.xml, um den Android-Manifest-Editor zu öffnen. Überprüfen Sie dann unter Erforderliche Berechtigungen die READ_CONTACTS-Berechtigung. Dadurch wird die Datei AndroidManifest.xml automatisch aktualisiert.

Auswählen eines Kontakts

Sie können die Benutzer*innen auffordern, einen Kontakt zu wählen, indem Sie die PickContactAsync()-Methode aufrufen. Auf dem Gerät wird ein Kontaktdialogfeld angezeigt, mit dem die Benutzer*innen einen Kontakt auswählen können. Wenn kein Kontakt ausgewählt wird, wird null zurückgegeben.

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

Abrufen aller Kontakte

Die GetAllAsync-Methode gibt eine Sammlung von Kontakten zurück.

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

Plattformunterschiede

In diesem Abschnitt werden die plattformspezifischen Unterschiede mit der Kontakte-API beschrieben.

  • Der cancellationToken-Parameter in der GetAllAsync-Methode wird nicht unterstützt.