在Windows Phone 7.0版本的API里面对用户手机上的信息基本上是不提供给开发者使用,不过还好在芒果更新里面,我们已经看到了微软正在渐渐地开放这些接口,在7.1版本的API里面多了命名空间Microsoft.Phone.UserData,在这个空间下提供了手机系统用户通讯录和日历数据操作的API,我相信微软在未来会在该空间下开放更多的接口来操作用户的数据,下面来看一下Microsoft.Phone.UserData空间下的类,主要包含了Contacts, Contact, Appointments和Appointment这四个类,Contacts类允许你去查询用户的联系人数据,并且可以返回一个Contact类的集合,Appointments类允许你去查询用户的日程安排数据,并且可以返回一个Appointment类的集合。
下面是从官方网站翻译的Microsoft.Phone.UserData空间下类、属性等信息,仅供参考,详细信息请查阅MSDN。
类 | 说明 |
Account | 用户在手机上设置的提供联系人信息的账号类型,例如Facebook ,Microsoft Outlook等等。 |
Appointment | 系统日程安排的类。 |
Appointments | 提供了操作手机系统日常安排的类。 |
AppointmentsSearchEventArgs | 提供SearchCompleted事件返回数据的类。 |
Attendee | 包含了日程安排出席的信息类。 |
CompleteName | 包含了联系人姓名信息的类。 |
Contact | 通讯录类,包含了通讯录所有可用的信息。 |
ContactAddress | 包含了联系人地址信息的类。 |
ContactCompanyInformation | 包含了联系人公司信息的类。 |
ContactEmailAddress | 包含了联系人邮件信息的类。 |
ContactPhoneNumber | 包含了联系人电话号码信息的类。 |
Contacts | 通讯录类,提供了操作用户手机通讯录联系人的事件和方法。 |
ContactsSearchEventArgs | 提供SearchCompleted事件返回信息的类。 |
PhoneDataSharingContext | 数据共享的基类。 |
枚举 | 说明 |
AddressKind | 地址的种类。 |
AppointmentStatus | 日程安排的状态。 |
EmailAddressKind | 邮件地址的种类。 |
FilterKind | 通讯录搜索的种类。 |
PhoneNumberKind | 电话号码的种类。 |
StorageKind | 用户通讯录和日程安排的数据提供源的种类。 |
Contact类的属性:
属性名字 | 说明 |
Accounts | 联系人的来源账号。 |
Addresses | 联系人地址。 |
Birthdays | 联系人的生日。 |
Children | 联系人关联的子类别。 |
Companies | 联系人的公司。 |
CompleteName | 联系人的完整名称。 |
DisplayName | 联系人在通讯录的显示名称。 |
EmailAddresses | 联系人的邮箱地址,枚举模板类型。 |
IsPinnedToStart | 联系人是否在手机主屏幕上显示。 |
Notes | 联系人备注信息。 |
PhoneNumbers | 联系人的电话号码。 |
SignificantOthers | 联系人的其他关联信息。 |
Websites | 联系人的网站。 |
Appointment类属性:
属性名字 | 说明 |
Account | 来源账号。 |
Attendees | 日程安排出席的活动事项。 |
Details | 活动的内容 |
EndTime | 结束时间 |
IsAllDayEvent | 是否全天活动 |
IsPrivate | 是否私人活动 |
Location | 地点 |
Organizer | 组织者 |
StartTime | 开始时间 |
Status | 状态 |
Subject | 标题 |
下面用一个例子来测试一下获取手机用户的通讯录的信息。
MainPage.xaml文件:
- <ListBox Name="ContactResultsData" ItemsSource="{Binding}" >
- <ListBox.ItemTemplate>
- <DataTemplate>
- <StackPanel>
- <TextBlock Text="{Binding DisplayName}" />
- <!--电话号码-->
- <ListBox ItemsSource="{Binding PhoneNumbers}">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="{Binding PhoneNumber}" />
- </StackPanel>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- <!--邮箱-->
- <ListBox ItemsSource="{Binding EmailAddresses}">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <TextBlock Text="{Binding EmailAddress}"/>
- </StackPanel>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- <!--地址信息-->
- <ListBox ItemsSource="{Binding Addresses}">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <StackPanel Orientation="Horizontal">
- <StackPanel>
- <TextBlock Text="{Binding PhysicalAddress.AddressLine1}"/>
- <TextBlock Text="{Binding PhysicalAddress.City}"/>
- </StackPanel>
- </StackPanel>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- </StackPanel>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
MainPage.xaml.cs文件:
- using Microsoft.Phone.Controls;
- using Microsoft.Phone.UserData;
- namespace contactstest
- {
- public partial class MainPage : PhoneApplicationPage
- {
- private Contacts contacts;
- public MainPage()
- {
- InitializeComponent();
- contacts = new Contacts();
- contacts.SearchCompleted += contacts_SearchCompleted;
- contacts.SearchAsync("", FilterKind.DisplayName, "查询联系人");
- }
- //通讯录搜索完成事件处理
- void contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
- {
- ContactResultsData.DataContext = e.Results;
- }
- }
- }
运行的效果:
原文链接:http://www.cnblogs.com/linzheng/archive/2011/09/14/2176720.html
【编辑推荐】
- 在WP应用中使用Google Map替代Bing Map
- 浅谈Windows Phone应用程序生命周期
- Windows Phone 7数字罗盘使用指南
- Windows Phone 7文件下载进度和速度显示
- WP7开发中Coding4Fun的五种弹出框介绍