寻找关于如何可靠地维护我的应用程序中的联系人列表的明确答案

时间:2010-08-29 18:34:00

标签: android

我已经阅读了几个小时了,试图弄清楚如何在Android应用程序中维护一个可靠的联系人列表,但仍然找不到一个明确的成功案例。

我的情况是:我允许用户在我的应用程序中创建组,并且在每个组中,用户可以从他们在电话上的联系人列表中选择他们想要添加到该组的用户。然后,我需要能够有一种可靠的方法来比较来自我的应用程序中的传入联系人与我的联系人数据库的呼叫,看看他们是否在特定组中。

简单的部分是将特定联系人添加到我的数据库,还可以根据他们的电话号码查找联系人。感谢这个论坛,他们很容易! :)我通过Contact Name,Lookup Key和Contact Id将联系人存储在我的数据库中。对我来说困难的部分,这是我无法找到一个明确的答案,我怎么知道在未来一个月,联系人X将具有与添加时相同的查找密钥或联系人ID?那时他们都不能改变吗?显然名称可以轻松更改,但lookup_key和Contact ID也不能更改?我已经阅读了如果手动聚合联系人的lookup_key更改。换句话说,我正在寻找一旦输入后无法改变的联系人的可识别信息?

我已经阅读了有关使用ContentObserver注册联系人数据库更改的信息,但我没有看到这对我有帮助,因为如果我有联系人X的查询密钥Y和联系人ID为Z,即使我得到更新,联系人已更改,我仍然需要将我的应用程序中的Contact X与Contacts数据库中的Contact X匹配以更新我的信息,如果识别信息已更改,我仍然无法做到。

例如,我有一个名字,Lookup_Key,Ted的ContactID,230ff392,3209482的联系。一个月之后,曾经可能发生的是Ted现在是T-bone,458ee247,5502981?如果是这种情况,我不能使用这3个标识符作为查找联系人的方法。

非常感谢你的帮助! 保罗

1 个答案:

答案 0 :(得分:0)

我不知道您在哪里读取查找键可能会更改,但文档说明它们是永久性的,与联系ID相反。

Contacts Provider / Contacts:

  

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