Nella nuova versione di Windows Phone abbiamo a disposizione la classe Contacts del namespace Microsoft.Phone.UserData, che ci permette di accedere a tutti i dati della lista contatti.
Contacts dispone del metodo SearchAsync e dell'evento SearchCompleted che permettono di ottenere la lista e di effettuare anche un filtro sui dati, specificando il testo ed il tipo di ricerca, attraverso l'enum FilterKind.
contacts.SearchAsync("chiave di ricerca", FilterKind.None, null); public enum FilterKind { None, PinnedToStart, EmailAddress, PhoneNumber, DisplayName, }
Nel metodo gestore dell'evento, la proprietà Results del parametro ContactsSearchEventArgs espone un ricco grafo di oggetti/proprietà con tutte le informazioni correlate ai contatti. Di seguito un esempio dei campi principali:
Contacts contacts = new Contacts(); contacts.SearchCompleted += (object obj, ContactsSearchEventArgs args) => { var data = new List<string>(); foreach (var rst in args.Results) { string contact = rst.ToString(); ContactEmailAddress email = rst.EmailAddresses.FirstOrDefault(); if (email != null) contact += String.Format("{0} {1}: {2}", Environment.NewLine, email.Kind, email.EmailAddress); Account acc = rst.Accounts.FirstOrDefault(); if (acc != null) contact += String.Format("{0} {1}: {2}", Environment.NewLine, acc.Kind, acc.Name); IEnumerable<ContactAddress> add = rst.Addresses; foreach (var cAdd in add) { contact += String.Format("{0} {1}: {2}", Environment.NewLine, cAdd.Kind, cAdd.PhysicalAddress.AddressLine1); contact += String.Format("{0} {1}: {2}", Environment.NewLine, cAdd.Kind, cAdd.PhysicalAddress.City); contact += String.Format("{0} {1}: {2}", Environment.NewLine, cAdd.Kind, cAdd.PhysicalAddress.PostalCode); } ContactPhoneNumber pNum = rst.PhoneNumbers.FirstOrDefault(); if (pNum != null) contact += String.Format("{0} {1}: {2}", Environment.NewLine, pNum.Kind, pNum.PhoneNumber); data.Add(contact); } Results.ItemsSource = data; }; contacts.SearchAsync(string.Empty, FilterKind.None, null);
Con questa classe è possibile accedere solo ai dati della lista contatti sul device e non a quelli dei social network collegati. Inoltre tale accesso è in sola lettura.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Eseguire operazioni sui blob con Azure Storage Actions
Effettuare il binding di date in Blazor
C# 12: Cosa c'è di nuovo e interessante
Generare file PDF da Blazor WebAssembly con iText
Sfruttare al massimo i topic space di Event Grid MQTT
Verificare la provenienza di un commit tramite le GitHub Actions
Gestire undefined e partial nelle reactive forms di Angular
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Eseguire attività basate su eventi con Azure Container Jobs
Miglioramenti nelle performance di Angular 16
Migrare una service connection a workload identity federation in Azure DevOps