我希望将所有联系人存储在手机中,并根据要求进行更新。
http://www.silverlightshow.net/items/Windows-Phone-8-Contacts-Integration.aspx
此链接显示获取联系人但我没有收到所有联系人。我只收到使用我的应用创建的联系人。
我有什么方法可以获得所有联系人并更改手机号码。
由于
答案 0 :(得分:3)
从您提供的链接(强调添加):
借助Windows Phone 8,Microsoft引入了“自定义”的新概念 联系商店“[2]。除了对用户的只读访问权限 联系人列表和上面演示的使用单独任务的方法 我们现在能够创建新条目(两者都在7.x中可用) 在没有用户的情况下静默地将我们自己的数据写入人员中心 同意。 然而,应用仍然无法操纵现有的联系人 来自其他地方。从这个意义上说,属于的数据 一个应用程序与其他应用程序有些隔离。
这是设计使然,您无法编辑未创建的联系人。
答案 1 :(得分:1)
尝试这样的事情
void GetContact()
{
cons = new Contacts();
//Identify the method that runs after the asynchronous search completes.
cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(ContactsSearchCompleted);
//Start the asynchronous search.
cons.SearchAsync(String.Empty, FilterKind.None, "Contacts Test #1");
}
private void ContactsSearchCompleted(object sender, ContactsSearchEventArgs e)
{
cons.SearchCompleted -= ContactsSearchCompleted;
//e.Results should be the list of contact, since there's no filter applyed in the search you shoul have all contact here
}
这不是我未经测试的旧代码的复制粘贴,因此您可能需要更改某些内容
答案 2 :(得分:0)
你不能' - 愚蠢的蹩脚MS甚至不支持从vcard文件导入联系人。所有MS都希望您将所有数据都放到他们的服务器上,以便他们拥有它。
答案 3 :(得分:0)
首先,您应该联系Capability
for wp8 从添加WMAppManifest.xml
for wp8.1 从 Package.appxmanifest
添加现在定义一个类PhoneContact
来存储数据
public class PhoneContact {
public string Name { get; set; }
public string Number { get; set; }
public string Email { get; set; }
}
创建一个ObservableCollection并从构造函数调用以下操作来读取联系人列表。 N.B 还使用以下命名空间
using Microsoft.Phone.UserData;
using System.Collections.ObjectModel;
ObservableCollection<PhoneContact> phoneContact;
public MainPage() {
InitializeComponent();
phoneContact = new ObservableCollection<PhoneContact>();
ReadPhoneContact();
}
void ReadPhoneContact(){
Contacts cnt = new Contacts();
cnt.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);
cnt.SearchAsync(String.Empty, FilterKind.None, "Contacts Test #1");
}
阅读完所有联系后发生以下事件。你可以阅读多个联系电话,电子邮件等。
void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
{
foreach (var item in e.Results) {
var contact = new PhoneContact();
contact.Name = item.DisplayName;
foreach (var pn in item.PhoneNumbers)
contact.Number = string.IsNullOrEmpty(contact.Number) ? pn.PhoneNumber : (contact.Number + " , " + pn.PhoneNumber);
foreach (var ea in item.EmailAddresses)
contact.Email = string.IsNullOrEmpty(contact.Email) ? ea.EmailAddress : (contact.Email + " , " + ea.EmailAddress);
phoneContact.Add(contact);
}
}