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