您的位置:首页 > 编程语言 > C#

WP7 C#获取联系人资料

2012-10-22 17:31 127 查看
在早期的 windows phone 7 SDK 中只可以通过 Choosers 获取电话号码和 Email 地址以及其他一些简单的资料。从 7.1 Mango SDK 开始,微软就放开了这个限制,可获取包括:Address , DisplayName,EmailAddresses 等待

在这篇文章中,你将学习如何获取所有联系人的资料。

Contacts 类在 Microsoft.Phone.UserData 命名空间中定义,扩展自 PhoneDataSharingContext 并提供一些方法用于跟联系人数据进行交互。

public MainPage()

{

InitializeComponent();

Contacts objContacts = new Contacts();

objContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(objContacts_SearchCompleted);

objContacts.SearchAsync(string.Empty, FilterKind.None, null);

}

void objContacts_SearchCompleted(object sender, ContactsSearchEventArgs e)

{

foreach (var result in e.Results)

{

lst.Add("Name : " + result.DisplayName + " ; Phone Number : " + result.PhoneNumbers.FirstOrDefault());

}

}

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

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

public partial class MainPage : PhoneApplicationPage

{

// Constructor

public MainPage()

{

InitializeComponent();

Contacts objContacts = new Contacts();

objContacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(objContacts_SearchCompleted);

objContacts.SearchAsync(string.Empty, FilterKind.None, null);

}

void objContacts_SearchCompleted(object sender, ContactsSearchEventArgs e)

{

var ContactsData = from m in e.Results

select new MyContacts

{

DisplayName = m.DisplayName,

PhoneNumber = m.PhoneNumbers.FirstOrDefault()

};

var MyContactsLst = from contact in ContactsData

group contact by contact.DisplayName into c

orderby c.Key

select new Group<MyContacts>(c.Key, c);

longlist1.ItemsSource = ContactsData;

}

}

public class MyContacts

{

public string DisplayName { get; set; }

public ContactPhoneNumber PhoneNumber { get; set; }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: