唯一标识Windows Phone通讯簿中的联系人

时间:2013-07-22 09:47:02

标签: c# windows-phone-8 contacts

考虑以下情况:

  • 我将来自地址簿中随机联系人X的数据保存到Iso Storage
  • 我离开了应用程序并修改了地址簿中的联系人X
  • 回到应用程序,如何识别来自Iso Storage的Contact X与我刚刚在地址簿中修改的Contact X相同?

我的目的是定期将用户的地址簿数据复制到Iso Storage中,然后将其与服务器同步。我只做READ操作,如果获得授权,则完全允许。

问题是Contact ID是私有字段,我不能使用Contact Stores(具有公共ID)。

此外,WP联系人没有内容规则,这意味着您可以联系没有姓名,10个电话号码,没有电话号码等,因此将一段内容作为唯一标识符将不起作用,因为一致性不保证。

哈希代码也不起作用,因为修改后的对象会导致修改后的代码。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

找到答案 - 感谢此处发布的相关问题。

我反编译了Microsoft.Phone DLL,看起来Contact.GetHashCode实际上返回了Contact.ID值。已确认行为在各种设备和模拟器上按预期工作。

所有那些一直坚持不允许开发者访问联系人ID等信息的人 - 请记住,市场上可以拒绝用户联系访问权限。当我正在开发时,我假设用户完全理解他自己正在做什么,因为我花时间写了一篇有意义的描述,MS做了很好的验收测试。如果用户突然发现应用程序“打破了他的隐私”,那不是我作为开发人员的问题。

最后一段是因为我看到了几个答案,例如“开发人员不需要这些功能,他们打破了隐私”。