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
Centralizzare gli endpoint AI Foundry con Azure API Management
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare l nesting nativo dei CSS
Testare l'invio dei messaggi con Event Hubs Data Explorer
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Gestire codice JavaScript con code splitting e lazy loading
Utilizzare una qualunque lista per i parametri di tipo params in C#
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Supportare la sessione affinity di Azure App Service con Application Gateway
Eseguire script pre e post esecuzione di un workflow di GitHub
Recuperare l'ultima versione di una release di GitHub
Gestione dei nomi con le regole @layer in CSS
I più letti di oggi
- Versione 0.16 per Mono
- Microsoft Security Bulletin MS05-014
- Effettuare un redirect permanente di una pagina ASP.NET 4.0
- Gestire coppie chiave-valore con Autocomplete di jQuery UI in ASP.NET
- Usare Json.NET come motore di serializzazione in ASP.NET MVC
- Attivare l'output caching su ASP.NET Web API
- Utilizzare la configurazione di .NET Core nelle Azure Function
- Utilizzara le direttive di validazione degli input con AngularJS
- Utilizzare il proxy del WebServer di Angular per simulare chiamate ad API sullo stesso dominio
- Utilizzare la libreria JSLINQ per trovare gli oggetti comuni in due array JavaScript