我在市场上有一个应用程序,它使用联系人选择器存储联系人的详细信息。当我从联系人选择器返回时,我一直在使用以下内容获取联系人:
cursor.getColumnIndex(ContactsContract.Contacts._ID)
我发现使用它是可以的,直到有人闪光新rom或获得新手机,然后所有ID都已更改。
我查看了android文档,并且我看到了使用ContactsContract.Contacts.LOOKUP_KEY的引用,但描述让我感到困惑“一个不透明的值,其中包含如何查找联系人的提示,如果其行ID更改为同步或聚合的结果。“
那么我应该用什么来存储联系人ID?
答案 0 :(得分:1)
查找密钥是联系人的正确参考。
ContactsContract.Contacts表还有LOOKUP_KEY列 这是联系行的“永久”链接。因为联系人 提供商自动维护联系人,可能会更改联系人 响应聚合或同步的行的_ID值。即便如此 发生时,内容URI CONTENT_LOOKUP_URI与联系人的内容相结合 LOOKUP_KEY仍将指向联系人行,因此您可以使用 LOOKUP_KEY保持与“最喜欢的”联系人的链接,等等。 此列具有自己的格式,与格式无关 _ID专栏。