1

考虑以下情况:

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

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

问题是联系人 ID 是一个私有字段,我不能使用联系人存储(具有公共 ID)。

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

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

任何帮助深表感谢。

4

1 回答 1

2

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

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

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

最后一段的动机是,我看到一些答案表述为“开发人员不需要这些功能,它们会破坏隐私”。

于 2013-07-22T12:17:56.763 回答