WP7 C#获取联系人资料

来源:互联网 发布:网络交流环境的现状 编辑:程序博客网 时间:2024/05/18 19:47
在早期的 windows phone 7 SDK 中只可以通过 Choosers 获取电话号码和 Email 地址以及其他一些简单的资料。从 7.1 Mango SDK 开始,微软就放开了这个限制,可获取包括:Address , DisplayName,EmailAddresses  等待
在这篇文章中,你将学习如何获取所有联系人的资料。
Contacts 类在 Microsoft.Phone.UserData 命名空间中定义,扩展自 PhoneDataSharingContext 并提供一些方法用于跟联系人数据进行交互。
  1.  public MainPage()  
  2.  {  
  3.     InitializeComponent();  
  4.     Contacts objContacts = new Contacts();  
  5.     objContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(objContacts_SearchCompleted);  
  6.     objContacts.SearchAsync(string.Empty, FilterKind.None, null);  
  7.  } 
  8.  void objContacts_SearchCompleted(object sender, ContactsSearchEventArgs e)  
  9.  {  
  10.     foreach (var result in e.Results)  
  11.     {  
  12.       lst.Add("Name : " + result.DisplayName + " ; Phone Number : " + result.PhoneNumbers.FirstOrDefault());  
  13.     }  
  14.  }

Contacts 也可以用于联系人的搜索,通过 SearchAsync 方法。而 FilterKind 用于指定搜索的条件,例如 PhoneNumber , DisplayName or EmailAddress 等待。如果传递空值,则返回所有联系人信息。


这里是一些对联系人电话号码等信息进行格式化显示的方法。


  1.  public partial class MainPage : PhoneApplicationPage  
  2.  {  
  3.     // Constructor  
  4.     public MainPage()  
  5.     {  
  6.       InitializeComponent();  
  7.       Contacts objContacts = new Contacts();  
  8.       objContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(objContacts_SearchCompleted);  
  9.       objContacts.SearchAsync(string.Empty, FilterKind.None, null);  
  10.  }  
  11.     
  12.  void objContacts_SearchCompleted(object sender, ContactsSearchEventArgs e)  
  13.  {  
  14.     
  15.     var ContactsData = from m in e.Results  
  16.                        select new MyContacts  
  17.                        {  
  18.                            DisplayName = m.DisplayName,  
  19.                            PhoneNumber = m.PhoneNumbers.FirstOrDefault()  
  20.                         };  
  21.     var MyContactsLst = from contact in ContactsData  
  22.     group contact by contact.DisplayName into c  
  23.     orderby c.Key  
  24.     select new Group<MyContacts>(c.Key, c);  
  25.     longlist1.ItemsSource = ContactsData;  
  26.     }  
  27.  }  
  28.  public class MyContacts  
  29.  {  
  30.     public string DisplayName { get; set; }  
  31.     public ContactPhoneNumber PhoneNumber { get; set; }  
  32.  }


原创粉丝点击