Windows Phone 8 新增功能:支持第三方应用创建自定义联系人Custom Contact Store。

Windows Phone 8 将允许开发人员创建自己的Custom Contact Store。应用程序通过应用程序添加新联系人后,先联系人出现在Windows Phone hub中,并和用户的系统联系人并存。开发人员可以为创建联系人的的标准属性,如电话号码、名称等,也可以存储自定义属性。开发人员还可以利用联系人存储api来同步他们的用户的联系人列表到云端。

创建联系人:

        private async void Button_Click_4(object sender, RoutedEventArgs e)
        {
            //var store = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadOnly,
            //    ContactStoreApplicationAccessMode.LimitedReadOnly);


            //链接并打开联系人, 需要添加<Capability Name="ID_CAP_CONTACTS" /> 能力
            var store = await ContactStore.CreateOrOpenAsync();
            Debug.WriteLine("RevisionNumber:" + store.RevisionNumber);

            StoredContact sc = new StoredContact(store);
            sc.DisplayName = "Mark";
            sc.HonorificPrefix = "et";
            await sc.SaveAsync();
        }

读取联系人

        private async void Button_Click_2(object sender, RoutedEventArgs e)
        {

            //var store = await ContactStore.CreateOrOpenAsync(ContactStoreSystemAccessMode.ReadOnly,
            //    ContactStoreApplicationAccessMode.LimitedReadOnly);
            
 
            //链接并打开联系人, 需要添加<Capability Name="ID_CAP_CONTACTS" /> 能力
            var store = await ContactStore.CreateOrOpenAsync();
            Debug.WriteLine("RevisionNumber:" + store.RevisionNumber);

            //创建联系人查询
            ContactQueryResult result = store.CreateContactQuery();
            var count = await result.GetContactCountAsync();
            Debug.WriteLine("GetContactCountAsync:" + count);

            ContactQueryOptions option = result.GetCurrentQueryOptions();
            foreach (string filed in option.DesiredFields)
            {
                Debug.WriteLine("filed:" + filed);
            }
            

            //获取联系人列表
            var contacts = await result.GetContactsAsync();
            foreach (StoredContact contact in contacts)
            {
                Debug.WriteLine("DisplayName:" + contact.DisplayName);
                //将联系人数据转换成VCard文件
                var vCard = await contact.ToVcardAsync();
                IInputStream inputStream = vCard.GetInputStreamAt(0);
                ulong length = vCard.Size;

                try
                {
                    //将vCard文件流使用字符串输出
                    var readBuf = new Windows.Storage.Streams.Buffer((uint)length);
                    var vCardOp = vCard.GetInputStreamAt(0).ReadAsync(readBuf, (uint)length, InputStreamOptions.Partial);
                    vCardOp.Completed = (IAsyncOperationWithProgress<IBuffer, uint> asyncAction, AsyncStatus asyncStatus) =>
                    {
                        switch (asyncStatus)
                        {
                            case AsyncStatus.Completed:
                                Debug.WriteLine("vCardString:" + MainPage.BufferToString(readBuf));
                                break;
                            case AsyncStatus.Error:
                                break;
                            case AsyncStatus.Canceled:
                                // Read is not cancelled in this sample.
                                break;
                        }
                    };

                }
                catch (Exception exp)
                {
                    Debug.WriteLine(exp.ToString());
                }

            }
        }



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值