Kontak
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 node
manifest
:<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.