Windows phone如何讀取手機通訊錄做整合呢? 這只是一個簡單的功能,也許您在開發上用的到^^
說明
手機的通訊錄是每台手機必備的也是一定會用到的,應該沒有人手機沒有存任何電話之類的資料....,基本上系統內建的都很方便,如果您想開發有關通訊錄整合相關的App這個功能是必備的
實作
Step1
建立一個專案
Step2
點選MainPage.xaml後,在裡面加上一個ListBox和TextBlock(在下面的黑黑處,因為這不是模擬器畫面所以看不到值)
切記:記得在功能裡把ID_CAP_CONTACTS勾選
XAML程式碼
Step3
打開MainPage.xaml.cs,並在裡面加上程式碼,程式碼都有註解,
由於我們在ListBox上設計ItemTemplate,因此每一個通訊錄的資料都會顯示在ListBox中,
我們是透過Contacts類的Search方法,來實作這個通訊錄搜尋,採用非同步方法。
需先引用using Microsoft.Phone.UserData命名空間
using Microsoft.Phone.UserData;
接下來加上這段程式碼
public partial class MainPage : PhoneApplicationPage
{
// 建構函式
public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
void MainPage_Loaded(object sender, RoutedEventArgs e)
{
Contacts contacts = new Contacts();
contacts.SearchCompleted += (ss, arg) =>
{
//將搜尋到的資料填入ListBox
this.listBox1.ItemsSource = arg.Results;
};
//非同步搜尋通訊錄資料
contacts.SearchAsync(string.Empty, FilterKind.None, null);
}
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (this.listBox1.SelectedItem == null) return;
//取得選取的資料
Contact item = this.listBox1.SelectedItem as Contact;
string msg = "";
msg += "\nCompleteName : " + item.CompleteName.FirstName;
if (item.EmailAddresses.Count() > 0)
msg += "\nEmail : " + item.EmailAddresses.FirstOrDefault().EmailAddress;
if (item.PhoneNumbers.Count() > 0)
msg += "\nPhone : " + item.PhoneNumbers.FirstOrDefault().PhoneNumber;
this.textBlock1.Text = msg;
}
}
測試
結語
功能可以做成許多應用的App,一個大型App也可能包含數個小功能,主要還是要結合創意,加油! 快結束了...哈哈