Sdílet prostřednictvím


Kontakty

Browse sample. Procházení ukázky

Tento článek popisuje, jak můžete pomocí rozhraní .NET Multi-Platform App UI (.NET MAUI) IContacts vybrat kontakt a přečíst si o něm informace.

Výchozí implementace IContacts rozhraní je k dispozici prostřednictvím Default vlastnosti. Rozhraní IContacts i Contacts třída jsou obsaženy v Microsoft.Maui.ApplicationModel.Communication oboru názvů.

Důležité

Výběr kontaktu není ve Windows podporován.

Kvůli konfliktu Contacts oboru názvů musí být typ plně kvalifikovaný při cílení na iOS nebo macOS: Microsoft.Maui.ApplicationModel.Communication.Contacts. Nové projekty automaticky cílí na tyto platformy společně s Androidem a Windows.

Pokud chcete napsat kód, který se zkompiluje pro iOS a macOS, plně opravte Contacts typ. Případně zadejte direktivu using pro mapování Communication oboru názvů:

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

Začínáme

Pro přístup k funkcím Kontakty se vyžaduje následující nastavení specifické pro danou platformu.

Oprávnění ReadContacts je povinné a musí být nakonfigurováno v projektu Android. Můžete ho přidat následujícími způsoby:

  • Přidejte oprávnění založené na sestavení:

    Otevřete soubor Platforms/Android/MainApplication.cs a za direktivy přidejte následující atribut using sestavení:

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

    - nebo -

  • Aktualizace manifestu Androidu:

    Otevřete soubor Platforms/Android/AndroidManifest.xml a do uzlu přidejte následujícímanifest:

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

    - nebo -

  • Aktualizace manifestu Androidu v editoru manifestu:

    V sadě Visual Studio poklikejte na soubor Platforms/Android/AndroidManifest.xml a otevřete editor manifestu Androidu. Potom v části Požadovaná oprávnění zkontrolujte oprávnění READ_CONTACTS. Tím se automaticky aktualizuje soubor AndroidManifest.xml .

Výběr kontaktu

Můžete požádat uživatele, aby vybral kontakt zavoláním PickContactAsync() metody. V zařízení se zobrazí dialogové okno kontaktu, které uživateli umožní vybrat kontakt. Pokud uživatel kontakt nevybere, null vrátí se.

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

Získání všech kontaktů

Metoda GetAllAsync vrátí kolekci kontaktů.

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

Rozdíly mezi platformami

Tato část popisuje rozdíly specifické pro platformu s rozhraním API kontaktů.

  • Parametr cancellationToken v GetAllAsync metodě není podporován.