2010-08-29 24 views
2

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

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

简单的部分是添加特定的联系人到我的数据库,并根据他们的电话号码查找联系人。感谢这个论坛,他们很容易! :)我通过联系人姓名,查找键和联系人ID将联系人存储在我的数据库中。对我而言,困难的一部分,这是我无法找到明确答案的是,我如何知道一个月后,联系人X将具有与添加时相同的查找密钥或联系人ID?他们到底能不能全部改变?显然这个名字很容易改变,但是lookup_key和Contact ID不能改变?我已经阅读了有关lookup_key更改如果手动聚合联系人。换句话说,我正在寻找一个联系人的可识别信息,一旦他们被输入就无法更改?

我已阅读关于使用ContentObserver注册联系人数据库的更改,但我没有看到这对我有所帮助,因为如果我的联系人X具有Lookup Key Y和联系人ID Z,则甚至如果我更新联系人已更改,我仍然需要将我的应用程序中的联系人X与联系人数据库中的联系人X匹配以更新我的信息,但如果识别信息已更改,我仍不能执行此操作。

例如,我与Ted,230ff392,3209482的名称,Lookup_Key,ContactID有联系。一个月后,可能发生的事情是过去是Ted,现在是T-bone,458ee247,5502981?如果是这种情况,我不能使用这3个标识符作为查找联系人的手段。

非常感谢您的帮助! Paul

回答

0

我不知道你在哪里看到查找键可能会改变,但文档指出,它们是永久性的,与联系人ID相反。

Contacts Provider/Contacts:

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

相关问题