2012-02-06 38 views
1

我有一個應用程序在市場上存儲的細節與聯繫人使用聯繫人選擇器。什麼是「正確」的方式來存儲聯繫人的ID在Android

cursor.getColumnIndex(ContactsContract.Contacts._ID) 

我發現,使用這個是確定的,直到有人閃現出新的ROM或有新的手機,然後一切:當我從聯繫人選擇器返回我已經使用以下獲得接觸過該ID已經改變。

我看了一下android文檔,並且看到了使用ContactsContract.Contacts.LOOKUP_KEY的引用,但是描述讓我感到困惑:「一個不透明的值,它包含關於如何查找聯繫人的提示,如果其行標識更改爲同步或聚合的結果「。

那麼我應該使用什麼來存儲聯繫人ID?

+0

本地數據庫可能爲您的應用程序?並在閃爍前進行備份? – 2012-02-06 11:14:20

+0

存儲'LOOKUP_KEY'並記住閱讀(&執行)[備份代理](http://developer.android.com/guide/topics/data/backup.html) - 除非您真的感覺*喜歡維護服務器爲自己永久備份。 – Jens 2012-02-06 12:59:15

回答

1

查找鍵是聯繫人的正確參考。

Contacts Provider/Contacts:

的ContactsContract.Contacts表還具有列LOOKUP_KEY 這是一個「永久」鏈接到聯繫人行。由於聯繫人自動維護聯繫人,因此可能會更改聯繫人的行_ID值以響應聚合或同步。即使此 發生,內容URI CONTENT_LOOKUP_URI與聯繫人的 LOOKUP_KEY仍將指向聯繫人行,因此您可以使用LOOKUP_KEY維護與「最喜歡的」聯繫人等的鏈接。 此列有其自己的格式,與 _ID列的格式無關。

相關問題