Windows Phone 二十一、联系人存储
2015-06-26 02:07
351 查看
联系人资料是手机上必有的,在最新的 Windows Phone 中开放了相应的 API ,以便于应用程序读写通讯录。
注意:系统没有对整个手机自带的通讯录写入开放权限,每个应用只能管理属于当前应用的联系人。
联系人存储
两种系统联系人读取的形式
注意:系统没有对整个手机自带的通讯录写入开放权限,每个应用只能管理属于当前应用的联系人。
联系人存储
<StackPanel> <TextBox x:Name="txtName" Header="姓名" InputScope="NameOrPhoneNumber"/> <TextBox x:Name="txtTel" Header="电话" InputScope="ChineseHalfWidth"/> <TextBox x:Name="txtTel1" Header="电话" InputScope="TelephoneNumber"/> <Button x:Name="btnSave" Content="Save" Click="btnSave_Click"/> <Button x:Name="btnGet" Content="GET" Click="btnGet_Click"/> <Button x:Name="btnPicker" Content="Picker" Click="btnPicker_Click"/> <Button x:Name="btnGet2" Content="获取联系人信息2" Click="btnGet2_Click"/> </StackPanel>
private async void btnSave_Click(object sender, RoutedEventArgs e) { var name = txtName.Text; var tel = txtTel.Text; // 联系人存储容器 ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly); // 创建联系人信息对象 ContactInformation contactInformation = new ContactInformation(); // 设置联系人信息展示名称 contactInformation.DisplayName = name; // 详细属性 var contactProps = await contactInformation.GetPropertiesAsync(); // 详细属性编辑通过字典形式操作,需要记住所有的属性名都有KnownContactProperties点出来 contactProps.Add(KnownContactProperties.MobileTelephone, tel); // 创建一个存储对象将联系人信息存储到存储容器中 StoredContact storedContact = new StoredContact(contactStore, contactInformation); // 保存 await storedContact.SaveAsync(); } private async void btnGet_Click(object sender, RoutedEventArgs e) { // 联系人存储容器 ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly); // 通过联系人存储容器查询联系人列表 var result = contactStore.CreateContactQuery(); var count = await result.GetContactCountAsync(); var list = await result.GetContactsAsync(); foreach (var item in list) { System.Diagnostics.Debug.WriteLine(item.DisplayName); } } private async void btnPicker_Click(object sender, RoutedEventArgs e) { // 联系人选择器Flyout Windows.ApplicationModel.Contacts.ContactPicker contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker(); // 必须设置以下项 contactPicker.DesiredFieldsWithContactFieldType.Add(Windows.ApplicationModel.Contacts.ContactFieldType.PhoneNumber); // 查询所有选中对象 var temp = await contactPicker.PickContactsAsync(); }
两种系统联系人读取的形式
<Grid> <TextBox x:Name="txtSearch"/> <Button x:Name="btnSearch" Content="Search" Click="btnSearch_Click"/> </Grid>
private async void btnSearch_Click(object sender, RoutedEventArgs e) { var contactStore = await Windows.ApplicationModel.Contacts.ContactManager.RequestStoreAsync(); // 通过联系人存储容器查询联系人列表(全文检索) if (string.IsNullOrEmpty(txtSearch.Text)) { var result = await contactStore.FindContactsAsync(); foreach (var item in result) { System.Diagnostics.Debug.WriteLine(item.DisplayName); } } else { var result = await contactStore.FindContactsAsync(txtSearch.Text); foreach (var item in result) { System.Diagnostics.Debug.WriteLine(item.DisplayName); } } System.Diagnostics.Debug.WriteLine("--------------------------------"); }
相关文章推荐
- 查看当前发行版可以使用的shell
- 查看当前发行版可以使用的shell
- bestcoder #45 分类: bestcoder ...
- bestcoder #45
- bestcoder #45 分类: bestcoder 2015-06-26 02:00 21人阅读 评论(0) 收藏
- Windows Phone 二十、陀螺仪
- Microsoft JET Database Engine 错误 ,asp Conn.Open 失败
- 黑马程序员——Java基础---异常、IO流
- 数据结构之---C语言实现线索二叉树
- Windows Phone 十九、罗盘
- linux下杀死进程(kill)的N种方法
- linux下杀死进程(kill)的N种方法
- 矩阵原地转置、旋转
- gensim的LSI模型来计算文档的相似度
- Leetcode#19 Remove Nth Node From End of List
- Fast dev didn't succeed, trying another location
- 使用wxPython建立一个计算文件md5的GUI工具
- ubuntu14.04安装hadoop2.6.0(伪分布模式)
- 2015暑假计划
- android 一键锁屏和清除手机数据