Kontakty
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ęźle
manifest
:<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.