Freigeben über


Kontakte

Browse sample. Durchsuchen Sie das Beispiel

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

Die Standardimplementierung der IContacts-Schnittstelle ist über die Default-Eigenschaft verfügbar. Die IContacts-Schnittstelle sowie 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 abzielt: Microsoft.Maui.ApplicationModel.Communication.Contacts. Neue Projekte zielen automatisch auf diese Plattformen zusammen mit Android und Windows ab.

Um Code zu schreiben, der für iOS und macOS kompiliert wird, muss der Contacts-Typ vollständig qualifiziert sein. Stellen Sie alternativ eine using-Direktive 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 Assemblyattribut nach using-Direktiven hinzu:

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

    - oder -

  • Aktualisieren Sie das Android-Manifest:

    Öffnen Sie die Datei Platforms/Android/AndroidManifest.xml, und fügen Sie Folgendes zum 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 Berechtigung READ_CONTACTS. Dadurch wird die Datei AndroidManifest.xml automatisch aktualisiert.

Auswählen eines Kontakts

Sie können den/die Benutzer*in auffordern, einen Kontakt zu wählen, indem Sie die PickContactAsync()-Methode aufrufen. Auf dem Gerät wird ein Kontaktdialogfeld angezeigt, mit dem der/die Benutzer*in einen Kontakt auswählen kann. Wenn der/die Benutzer*in keinen Kontakt auswählt, 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.