Contatos
Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI) IContacts para selecionar um contato e ler informações sobre ele.
A implementação padrão da interface está disponível por meio da IContacts
Default propriedade. A interface e Contacts
a IContacts
classe estão contidas no Microsoft.Maui.ApplicationModel.Communication
namespace.
Importante
Não há suporte para a seleção de um contato no Windows.
Devido a um conflito de namespace, o Contacts
tipo deve ser totalmente qualificado ao segmentar iOS ou macOS: Microsoft.Maui.ApplicationModel.Communication.Contacts
. Novos projetos visam automaticamente essas plataformas, juntamente com Android e Windows.
Para escrever o código que será compilado para iOS e macOS, qualifique totalmente o Contacts
tipo. Como alternativa, forneça uma using
diretiva para mapear o Communication
namespace:
using Communication = Microsoft.Maui.ApplicationModel.Communication;
// Code that uses the namespace:
var contact = await Communication.Contacts.Default.PickContactAsync();
Introdução
Para acessar a funcionalidade Contatos, é necessária a seguinte configuração específica da plataforma.
A permissão ReadContacts
é necessária e deve ser configurada no projeto do Android. Isso pode ser usado das seguintes maneiras:
Adicione a permissão baseada em assembly:
Abra o arquivo Platforms/Android/MainApplication.cs e adicione o seguinte atributo assembly após
using
as diretivas:[assembly: UsesPermission(Android.Manifest.Permission.ReadContacts)]
- ou -
Atualize o manifesto do Android:
Abra o arquivo Platforms/Android/AndroidManifest.xml e adicione o
manifest
seguinte no nó:<uses-permission android:name="android.permission.READ_CONTACTS" />
- ou -
Atualize o manifesto do Android no editor de manifesto:
No Visual Studio, clique duas vezes no arquivo Platforms/Android/AndroidManifest.xml para abrir o editor de manifesto do Android. Em seguida, em Permissões necessárias, verifique a permissão READ_CONTACTS . Isso atualizará automaticamente o arquivo AndroidManifest.xml.
Escolha um contato
Você pode solicitar que o usuário escolha um contato chamando o PickContactAsync() método. Uma caixa de diálogo de contato aparecerá no dispositivo, permitindo que o usuário selecione um contato. Se o usuário não selecionar um contato, null
será retornado.
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
}
}
Obter todos os contatos
O GetAllAsync método retorna uma coleção de contatos.
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;
}
Diferenças de plataforma
Esta seção descreve as diferenças específicas da plataforma com a API de contatos.
- O
cancellationToken
parâmetro no GetAllAsync método não é suportado.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de