Bagikan melalui


Kontak

Telusuri sampel. Telusuri sampel

Artikel ini menjelaskan bagaimana Anda dapat menggunakan antarmuka .NET Multi-platform App UI (.NET MAUI) IContacts untuk memilih kontak dan membaca informasi tentangnya.

Implementasi IContacts default antarmuka tersedia melalui Default properti . IContacts Antarmuka dan Contacts kelas terkandung dalam Microsoft.Maui.ApplicationModel.Communication namespace layanan.

Penting

Memilih kontak tidak didukung pada Windows.

Karena konflik namespace, Contacts jenis harus sepenuhnya memenuhi syarat saat menargetkan iOS atau macOS: Microsoft.Maui.ApplicationModel.Communication.Contacts. Proyek baru secara otomatis menargetkan platform ini, bersama dengan Android dan Windows.

Untuk menulis kode yang akan dikompilasi untuk iOS dan macOS, sepenuhnya memenuhi syarat jenisnya Contacts . Atau, berikan using arahan untuk memetakan Communication namespace:

using Communication = Microsoft.Maui.ApplicationModel.Communication;

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

Memulai

Untuk mengakses fungsionalitas Kontak , diperlukan penyiapan khusus platform berikut.

Izin ReadContacts diperlukan dan harus dikonfigurasi dalam proyek Android. Ini dapat ditambahkan dengan cara berikut:

  • Tambahkan izin berbasis rakitan:

    Buka file Platforms/Android/MainApplication.cs dan tambahkan atribut assembly berikut setelah using direktif:

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

    - atau -

  • Perbarui Manifes Android:

    Buka file Platforms/Android/AndroidManifest.xml dan tambahkan yang berikut ini di nodemanifest:

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

    - atau -

  • Perbarui Manifes Android di editor manifes:

    Di Visual Studio klik dua kali pada file Platforms/Android/AndroidManifest.xml untuk membuka editor manifes Android. Kemudian, di bawah Izin yang diperlukan periksa izin READ_CONTACTS . Ini akan secara otomatis memperbarui file AndroidManifest.xml .

Pilih kontak

Anda dapat meminta pengguna untuk memilih kontak dengan memanggil PickContactAsync() metode . Dialog kontak akan muncul pada perangkat yang memungkinkan pengguna memilih kontak. Jika pengguna tidak memilih kontak, null akan dikembalikan.

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

Mendapatkan semua kontak

Metode mengembalikan GetAllAsync kumpulan kontak.

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

Perbedaan platform

Bagian ini menjelaskan perbedaan khusus platform dengan API kontak.

  • Parameter cancellationToken dalam GetAllAsync metode tidak didukung.