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
Gestire gli errori di caricamento delle immagini
Installare le Web App site extension tramite una pipeline di Azure DevOps
Scoprire le ottimizzazioni di Entity Framework Core in fase di scrittura di un solo record
Sfruttare la local cache del browser tramite gli ETag in ASP.NET Core
Limitare lo spazio dei repository di Azure Container Registry con uno script bash e Azure CLI
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Semplificare il deployment di siti statici con Azure Static Web App
Copiare automaticamente le secret tra più repository di GitHub
Gestione degli environment per il deploy con un workflow di GitHub
Sopprimere gli errori di concorrenza quando si elimina una entity con Entity Framework 7
Eseguire attività con Azure Container Jobs
I più letti di oggi
- Usare un KeyedService di default in ASP.NET Core 8
- .NET Conference Italia 2023 - Milano e Online
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Creare dei grafici con OWC
- Ottimizzare le prestazioni di ASP.NET Core con la Cache distribuita su SQL Server