如何从 Windows Phone 8.1(非 Silverlight)联系人获取生日

本文关键字:Silverlight 联系人 生日 获取 Windows Phone | 更新日期: 2023-09-27 18:35:39

我正在尝试用我所有的电话联系人的生日填充列表视图,但不幸的是,这似乎比我最初想象的要困难 - 或者我错过了一些大东西......

关于Windows Phone 8.1 Silverlight,这似乎很容易,因为有一个生日属性。但是如何在Windows Phone 8.1运行时中获取联系人的生日?

为什么没有房产?这可能很容易...

var contactStore = await ContactManager.RequestStoreAsync();
var contacts = await contactStore.FindContactsAsync();
foreach (var contact in contacts) 
{   
   // var birthday = contact.Birthday;  // unfortunately not possible 
}

如何从 Windows Phone 8.1(非 Silverlight)联系人获取生日

这里的链接最终为我指出了正确的方向:

var contactStore = await ContactManager.RequestStoreAsync();
var contacts = await contactStore.FindContactsAsync();
foreach (var contact in contacts) 
{   
   // var list = contact.ImportantDates;
   // Enumerating this list we can check for ContactDateKind == Birthday
   // Or even shorter:
   var birthday = contact.ImportantDates.FirstOrDefault(d => d.Kind == ContactDateKind.Birthday);
   // birthday is null if there is no birthday saved for the current contact
}

我认为你应该使用Microsoft Live Connect Api.通过此链接 http://developer.nokia.com/community/wiki/Birthday_Calendar_for_Windows_Phone

您还可以查看如何访问 Windows Phone 8 的日历数据?http://msdn.microsoft.com/en-us/library/windows/apps/hh286421%28v=vs.105%29.aspx

编辑

试试这个

var store = await ContactStore.CreateOrOpenAsync();
StoredContact sc = new StoredContact(store);
IDictionary<string, object> values = await sc.GetPropertiesAsync();

在这里你可以使用 KnownContactProperties.Birthdate .也许这会帮助你。