2010-11-29 174 views
0

我对保持对启动android 2.0的联系人的强大引用的最佳方式有意见。我已经阅读了很多关于这个问题,但我不知道哪种技术是可取的,如果有新的。以下是我发现的3个选项:CONTACT_ID - 保持同步

1-不要使用自己的数据库。扩展contacts.contract来编写您的数据

2 - 使用ContentObserver跟踪对联系人所做的任何更改。然而,这种技术需要你的应用程序能够运行

3-存放在你的数据库相关的所有CONTACT_ID RAW联络人ID,并推断其所有组成RAW接触

在我的情况下,集合接触的内容我需要保持一个独立的数据库,我想知道是否有保持聚合和DIS-聚合后的CONTACT_ID电流的任何其他新技术...

请告知

+0

我完全明白你的确切要求,尤其是第三点。为什么需要将所有RAW联系人ID存储在应用程序数据库中,因为它们可以在任何情况下从RAW_CONTACTS中提取? – 2010-11-30 06:28:37

回答

0

我用新的联系人API在玩的一会儿,写一个应用程序,这也是联系人数据的来源。我根本不推荐#3。要获取所有“我的”联系人数据,我只需将它们存储在RawContacts.SYNC1字段中,并在我的应用程序启动时查询联系人内容提供商。

Re。你的问题,不要使用CONTACT_IDs,因为它们是不稳定的。使用查找API,即如果您有原始联系人ID,请使用RawContacts.getContactLookupUri()访问联系人。同样,如果某些API为您提供联系人ID,请使用Contacts.getLookupUri()获取您稍后可以使用的持久标识符。

+0

嗨,鲁本。我的问题是,我没有实施同步适配器。我只是存储一些联系人在我的SQL数据库,我需要一个强大的参考这些联系人。我的理解既lookup_key和contact_id更改,我不能使用任何匹配的联系人。 – Mak 2010-11-30 12:08:01