Windows Phone 7獲取用戶通訊錄和日程安排
在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的五種彈出框介紹