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
Creare una libreria CSS universale: Cards
Gestione CSS in Blazor con .NET 9
Utilizzare Hybrid Cache in .NET 9
Recuperare App Service cancellati su Azure
Generare una User Delegation SAS in .NET per Azure Blob Storage
Combinare Container Queries e Media Queries
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Rendere le variabili read-only in una pipeline di Azure DevOps
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Fornire parametri ad un Web component HTML
I più letti di oggi
- Gestire coppie chiave-valore con Autocomplete di jQuery UI in ASP.NET
- Usare Json.NET come motore di serializzazione in ASP.NET MVC
- Microsoft Security Bulletin MS05-014
- Effettuare un redirect permanente di una pagina ASP.NET 4.0
- Attivare l'output caching su ASP.NET Web API
- Gestione CSS in Blazor con .NET 9