2012-09-06 139 views
9

Android是否爲每個聯繫人分配唯一的常量ID?
如果沒有,是否有辦法將這些信息分配給他們? 我可以將此ID同步到Google聯繫人嗎?唯一聯繫人ID

謝謝。

回答

4

在android聯繫人中有兩種類型的contact id。

一個是CONTACT_ID其他 ANS是RAW_CONTACT_ID

請參閱本教程。 ANDROID CONTACTS

希望這會幫助你。

+0

但我不認爲這些ID將保持不變,如果我將它們同步到鏈接到我的谷歌帳戶的其他設備。 有沒有辦法將用戶定義的數據與我的谷歌聯繫人同步? – user1651653

+0

當然不是。它只是android設備中的唯一ID。 –

+0

這不回答這個問題:Android是否爲每個聯繫人分配唯一的常量ID?是或否? – Simon

4

您只能檢索同步Google聯繫人的唯一ID。在其他情況下,您可能會得到不同的ID,因爲每當用戶重置或重新導入聯繫人到電話簿時,每個聯繫人的Android raw_id都會更改。

如果您希望contact-ids與設備和平臺保持一致,那麼您可以只使用同步的Google聯繫人,也可以在代碼中編寫自己的工作以生成唯一的id。取得聯繫的電話號碼的哈希值,名稱等,當同步適配器創建一個新的原料,其很少改變

0
ContactsContract.RawContacts SOURCE_ID 

唯一標識此生接觸到其創建

的 帳戶的字符串值聯繫人,此列應設爲 設置爲服務器的原始聯繫人的唯一ID。當Android 應用程序創建新的原始聯繫人時,應用程序應將此列留空 。這表示它應該在同步適配器上創建 服務器上的新的原始聯繫人,並獲取SOURCE_ID的值。在 尤其源ID必須爲每個帳戶類型是唯一的, 應在整個同步保持穩定:

獨特之處:一個帳戶每個原始聯繫人都必須有它自己的源ID。 如果您不強制執行此操作,則會在聯繫人 應用程序中導致問題。請注意,同一帳戶類型 的兩個原始聯繫人可能具有相同的源ID。例如,允許賬戶[email protected]的原始聯繫人「Thomas Higginson」與 賬戶[email protected]的原始聯繫人「Thomas Higginson」具有相同的源ID。穩定:源ID是 原始聯繫人的在線服務數據的永久部分。例如,如果 用戶從應用設置中清除聯繫人存儲並重新同步,則恢復的原始聯繫人應具有與以前相同的源ID。如果 您不強制執行此操作,快捷方式將停止工作。

下面是官方文檔:Contacts Provider