Udostępnij za pośrednictwem


Kontakty

Przeglądaj przykład. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI) IContacts do wybierania kontaktu i odczytywania informacji o nim.

Domyślna implementacja interfejsu IContacts jest dostępna za pośrednictwem Default właściwości . Zarówno interfejs, jak IContacts i Contacts klasa są zawarte w Microsoft.Maui.ApplicationModel.Communication przestrzeni nazw.

Ważne

Wybranie kontaktu nie jest obsługiwane w systemie Windows.

Ze względu na konflikt Contacts przestrzeni nazw typ musi być w pełni kwalifikowany podczas określania wartości docelowej dla systemu iOS lub macOS: Microsoft.Maui.ApplicationModel.Communication.Contacts. Nowe projekty są automatycznie przeznaczone dla tych platform wraz z systemami Android i Windows.

Aby napisać kod, który będzie kompilowany dla systemów iOS i macOS, w pełni kwalifikują typ Contacts . Alternatywnie należy podać dyrektywę using mapowania Communication przestrzeni nazw:

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

Rozpocznij

Aby uzyskać dostęp do funkcji Kontakty , wymagana jest następująca konfiguracja specyficzna dla platformy.

Uprawnienie ReadContacts jest wymagane i musi być skonfigurowane w projekcie systemu Android. Można to dodać w następujący sposób:

  • Dodaj uprawnienie oparte na zestawie:

    Otwórz plik Platformy/Android/MainApplication.cs i dodaj następujący atrybut zestawu po using dyrektywach:

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

    - lub -

  • Zaktualizuj manifest systemu Android:

    Otwórz plik Platformy/Android/AndroidManifest.xml i dodaj następujący kod w węźlemanifest:

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

    - lub -

  • Zaktualizuj manifest systemu Android w edytorze manifestu:

    W programie Visual Studio kliknij dwukrotnie plik Platformy/Android/AndroidManifest.xml , aby otworzyć edytor manifestu systemu Android. Następnie w obszarze Wymagane uprawnienia sprawdź uprawnienia READ_CONTACTS . Spowoduje to automatyczne zaktualizowanie pliku AndroidManifest.xml .

Wybierz kontakt

Możesz poprosić użytkownika o wybranie kontaktu, wywołując metodę PickContactAsync() . Na urządzeniu zostanie wyświetlone okno dialogowe kontaktu umożliwiające użytkownikowi wybranie kontaktu. Jeśli użytkownik nie wybierze kontaktu, null zostanie zwrócony.

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

Pobieranie wszystkich kontaktów

Metoda GetAllAsync zwraca kolekcję kontaktów.

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

Różnice między platformami

W tej sekcji opisano różnice specyficzne dla platformy dotyczące interfejsu API kontaktów.

  • Parametr cancellationToken w metodzie GetAllAsync nie jest obsługiwany.