我有一个应用程序可以获取ContactsContract.Contacts.LOOKUP_KEY
设备上的联系人并将其保存在应用程序数据库中。
看完之后this页面我想我可以使用LOOKUP_KEY
唯一标识联系人,即使在编辑联系人时(例如编辑联系人姓名后)。
其实我看到编辑联系人后,LOOKUP_KEY
更改,所以我不能再使用LOOKUP_KEY
我保存在我的应用程序数据库中。
我的问题是:有没有办法唯一地识别联系人ContactsContract.Contacts
从第一次在设备上创建到从设备中删除?
谢谢
A LOOKUP_KEY
并不意味着单独用作密钥,而是应与联系人的密钥一起使用_ID
形成一个完整的lookupUri
.
The lookupUri
然后可用于查找联系人CONTENT_LOOKUP_URI
表。
这CONTENT_LOOKUP_URI
基本上首先通过以下方式寻找联系人_ID
,如果找不到它,或者_ID
似乎是错误的联系方式,它使用hints来自LOOKUP_KEY
部分尝试为您找到正确的联系人。
From CONTENT_LOOKUP_URI
该表的 content:// 样式 URI 应用于创建
快捷方式或以其他方式创建与联系人的长期链接。这个URI
后面应始终跟有“/”和联系人的 LOOKUP_KEY。它
还可以选择附加“/”和最后已知的联系 ID
在那之后。这种“完整”格式是一项重要的优化,
强烈推荐。
只要联系人的行 ID 保持不变,此 URI 就是
相当于 CONTENT_URI。如果联系人的行 ID 因此发生更改
同步或聚合时,此 URI 将使用以下方式查找联系人
间接信息(同步 ID 或组成的原始联系人)。
查找密钥应以未编码形式附加 - 它存储在编码中
形式,准备在 URI 中使用。
From getLookupUri(long contactId, String lookupKey)
使用给定的 _ID 构建 CONTENT_LOOKUP_URI 查找 Uri 和
LOOKUP_KEY。
From LOOKUP_KEY
包含的不透明值hints关于如何找到联系人(如果是)
行 ID 由于同步或聚合而更改。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)