Kontakty
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.