2010-08-29 26 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列的格式無關。

相關問題