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
Utilizzare il metodo reduce in JavaScript
Effettuare un deployment differenziale con una GitHub Action
Un confronto tra Framework CSS: Foundation, Bulma, TailwindCSS e SemanticUI
Creare un job summary in una GitHub Action
Eseguire query in parallelo con Entity Framework Core and ASP.NET Core
Semplificare con un extension method l'aggiunta di filtri a run time nelle query LINQ
Supporto migliorato agli statement condizionali nelle pipeline di Azure DevOps
Configuration strongly typed anche per singleton con IOptionsMonitor in ASP.NET Core
Utilizzare il metodo Chunk per creare blocchi di oggetti di uguali dimensioni partendo da una lista
Introduzione a Azure Container Apps
Creare velocemente microservice grazie a minimal API di ASP.NET Core 6
Utilizzare WordPress con Azure App Service
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Eseguire una chiamata asincrona durante la validazione di una form in Blazor
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Produttività con ASP.NET Core 6
- Blazor PWA e Offline-First