如何在联系人合同上唯一标识联系人.联系人表



我有一个应用程序,它可以获取设备上联系人的ContactsContract.Contacts.LOOKUP_KEY并将其保存在应用程序 DB 上。

阅读此页面后,我认为我可以使用LOOKUP_KEY来唯一标识联系人,即使在编辑联系人时(例如在编辑联系人姓名后(。

实际上,我看到编辑联系人后,其LOOKUP_KEY发生了变化,因此我无法再使用保存在应用程序DB上的LOOKUP_KEY

我的问题是:有没有办法唯一标识ContactsContract.Contacts上的联系人,从第一次在设备上创建联系人到从设备中删除联系人?

谢谢

LOOKUP_KEY本身并不意味着用作密钥,而是应与联系人的_ID一起使用以形成完整的lookupUri

然后,可以使用lookupUriCONTENT_LOOKUP_URI表中查找联系人。CONTENT_LOOKUP_URI基本上首先通过_ID查找联系人,如果找不到它,或者_ID似乎是错误的联系人,它会使用LOOKUP_KEY部分的提示来尝试为您追踪正确的联系人。

CONTENT_LOOKUP_URI

此表的 content://样式 URI,应用于创建 快捷方式或以其他方式创建指向联系人的长期链接。此 URI 应始终跟有"/"和联系人的LOOKUP_KEY。它 还可以选择附加"/"和最后已知的联系人 ID 然后。这种"完整"格式是一个重要的优化,是 强烈推荐。

只要联系人的行 ID 保持不变,此 URI 就是 相当于CONTENT_URI。如果联系人的行 ID 因此而更改 的同步或聚合,此 URI 将使用 间接信息(同步 ID 或组成原始联系人(。

查找键应附加未编码 - 它存储在编码中 窗体,准备在 URI 中使用。

getLookupUri(long contactId, String lookupKey)

使用给定的_ID构建CONTENT_LOOKUP_URI查找 Uri 和 LOOKUP_KEY。

LOOKUP_KEY

一个不透明值,其中包含有关如何查找联系人的提示,如果 由于同步或聚合而更改的行 ID。

名为_ID的每个联系人的行 ID(主键(。

相关内容

  • 没有找到相关文章

最新更新