【问题标题】:What is the "correct" way to store a contact's ID in android在android中存储联系人ID的“正确”方法是什么
【发布时间】:2012-02-27 21:01:16
【问题描述】:

我在市场上有一个应用程序,它使用联系人选择器存储联系人的详细信息。当我从联系人选择器返回时,我一直在使用以下内容来获取联系人:

cursor.getColumnIndex(ContactsContract.Contacts._ID)

我发现使用它是可以的,直到有人刷了一个新的 rom 或者得到了一部新手机,然后所有的 ID 都改变了。

我查看了 android 文档,并看到了对使用 ContactsContract.Contacts.LOOKUP_KEY 的引用,但描述让我感到困惑“一个不透明的值,其中包含有关如何在其行 id 更改为联系人时查找联系人的提示同步或聚合的结果。”

那么我应该使用什么来存储联系人 ID?

【问题讨论】:

  • 一个本地数据库可能是为您的应用程序?刷机前备份一下?
  • 存储 LOOKUP_KEY 并记住阅读(并实施)backup agent - 除非您真的感觉喜欢自己永久维护一个服务器以进行备份。

标签: android


【解决方案1】:

查找键是联系人的正确参考。

Contacts Provider / Contacts:

ContactsContract.Contacts 表也有 LOOKUP_KEY 列 这是到联系人行的“永久”链接。因为联系人 提供者自动维护联系人,它可能会更改联系人 响应聚合或同步的行的 _ID 值。即使这 发生时,内容 URI CONTENT_LOOKUP_URI 与联系人的结合 LOOKUP_KEY 仍将指向联系人行,因此您可以使用 LOOKUP_KEY 维护到“最喜欢的”联系人的链接,等等。 此列有自己的格式,与表格的格式无关 _ID 列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2012-05-01
    • 1970-01-01
    • 2013-02-01
    • 2017-02-07
    • 1970-01-01
    相关资源
    最近更新 更多