zoukankan      html  css  js  c++  java
  • Windows Phone 二十一、联系人存储

    联系人资料是手机上必有的,在最新的 Windows Phone 中开放了相应的 API ,以便于应用程序读写通讯录。

    注意:系统没有对整个手机自带的通讯录写入开放权限,每个应用只能管理属于当前应用的联系人。

    联系人存储

    1     <StackPanel>
    2         <TextBox x:Name="txtName" Header="姓名" InputScope="NameOrPhoneNumber"/>
    3         <TextBox x:Name="txtTel" Header="电话" InputScope="ChineseHalfWidth"/>
    4         <TextBox x:Name="txtTel1" Header="电话" InputScope="TelephoneNumber"/>
    5         <Button x:Name="btnSave" Content="Save" Click="btnSave_Click"/>
    6         <Button x:Name="btnGet" Content="GET" Click="btnGet_Click"/>
    7         <Button x:Name="btnPicker" Content="Picker" Click="btnPicker_Click"/>
    8         <Button x:Name="btnGet2" Content="获取联系人信息2" Click="btnGet2_Click"/>
    9     </StackPanel>
     1         private async void btnSave_Click(object sender, RoutedEventArgs e)
     2         {
     3             var name = txtName.Text;
     4             var tel = txtTel.Text;
     5 
     6             // 联系人存储容器
     7             ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly);
     8 
     9             // 创建联系人信息对象
    10             ContactInformation contactInformation = new ContactInformation();
    11             // 设置联系人信息展示名称
    12             contactInformation.DisplayName = name;
    13             // 详细属性
    14             var contactProps = await contactInformation.GetPropertiesAsync();
    15             // 详细属性编辑通过字典形式操作,需要记住所有的属性名都有KnownContactProperties点出来
    16             contactProps.Add(KnownContactProperties.MobileTelephone, tel);
    17 
    18 
    19             // 创建一个存储对象将联系人信息存储到存储容器中
    20             StoredContact storedContact = new StoredContact(contactStore, contactInformation);
    21             // 保存
    22             await storedContact.SaveAsync();
    23         }
    24 
    25         private async void btnGet_Click(object sender, RoutedEventArgs e)
    26         {
    27             // 联系人存储容器
    28             ContactStore contactStore = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadWrite, ContactStoreApplicationAccessMode.ReadOnly);
    29 
    30             // 通过联系人存储容器查询联系人列表
    31             var result = contactStore.CreateContactQuery();
    32 
    33             var count = await result.GetContactCountAsync();
    34 
    35             var list = await result.GetContactsAsync();
    36 
    37             foreach (var item in list)
    38             {
    39                 System.Diagnostics.Debug.WriteLine(item.DisplayName);
    40             }
    41         }
    42 
    43         private async void btnPicker_Click(object sender, RoutedEventArgs e)
    44         {
    45             // 联系人选择器Flyout
    46             Windows.ApplicationModel.Contacts.ContactPicker contactPicker = new Windows.ApplicationModel.Contacts.ContactPicker();
    47             // 必须设置以下项
    48             contactPicker.DesiredFieldsWithContactFieldType.Add(Windows.ApplicationModel.Contacts.ContactFieldType.PhoneNumber);
    49             // 查询所有选中对象
    50             var temp = await contactPicker.PickContactsAsync();
    51 
    52         }

    两种系统联系人读取的形式

    1     <Grid>
    2         <TextBox x:Name="txtSearch"/>
    3         <Button x:Name="btnSearch" Content="Search" Click="btnSearch_Click"/>
    4     </Grid>
     1         private async void btnSearch_Click(object sender, RoutedEventArgs e)
     2         {
     3             var contactStore = await Windows.ApplicationModel.Contacts.ContactManager.RequestStoreAsync();
     4             // 通过联系人存储容器查询联系人列表(全文检索)
     5             if (string.IsNullOrEmpty(txtSearch.Text))
     6             {
     7                 var result = await contactStore.FindContactsAsync();
     8                 foreach (var item in result)
     9                 {
    10                     System.Diagnostics.Debug.WriteLine(item.DisplayName);
    11                 }
    12             }
    13             else
    14             {
    15                 var result = await contactStore.FindContactsAsync(txtSearch.Text);
    16                 foreach (var item in result)
    17                 {
    18                     System.Diagnostics.Debug.WriteLine(item.DisplayName);
    19                 }
    20             }
    21 
    22 
    23             System.Diagnostics.Debug.WriteLine("--------------------------------");
    24         }
  • 相关阅读:
    初谈DHCP中继原理和配置
    css3渐变之linear-gradient与-webkit-linear-gradient写法异同
    mac svn 更新到新版本1.8
    mac显示所有文件、不产生.DS_Store文件
    mac自定义安装nodejs步骤
    nodejs 80端口监听失败及NODE_PATH不起作用的问题
    一种javascript链式多重继承的方式(__proto__原型链)
    apk反编译、smali修改、回编译笔记
    启用“关闭自动根证书更新”,解决Windows系统各种卡顿的问题(Visual studio 卡、远程桌面mstsc卡、SVN卡)
    SQL查询中关于索引使用的笔记
  • 原文地址:https://www.cnblogs.com/includeling/p/4601363.html
Copyright © 2011-2022 走看看