唯一的联系人ID

时间:2012-09-06 17:13:44

标签: android android-contacts

android是否为每个联系人分配唯一的常量ID? 如果没有,有没有办法将这些信息分配给他们? 我可以将此ID同步到谷歌联系人吗?

感谢。

4 个答案:

答案 0 :(得分:4)

Android联系人中有两种类型的联系ID。

一个 CONTACT_ID 另一个 RAW_CONTACT_ID

参考本教程。 ANDROID CONTACTS

希望这会对你有所帮助。

答案 1 :(得分:4)

您只能为已同步的Google通讯录检索唯一ID。在其他情况下,您可能会获得不同的ID,因为在Android raw_id中,每当用户重置或重新将联系人导入电话簿时,每个联系人都会更改。

如果您想要联系人ID的一致性,无论设备如何,那么平台要么只使用同步的Google联系人,要么编写自己的代码工作来生成例如获取很少改变的联系人号码,姓名等的哈希值

答案 2 :(得分:1)

ContactsContract.RawContacts    SOURCE_ID
  

唯一标识此原始联系人的字符串值   创建它的帐户

     

当同步适配器创建新的原始联系人时,此列应为   设置为服务器的原始联系人的唯一ID。当一个Android   应用程序创建一个新的原始联系人,应用程序应该离开   这列空了。这表示它应该创建的同步适配器   服务器上的新原始联系人,并获取SOURCE_ID的值。在   特别是,每个帐户类型的源ID必须是唯一的   应该在同步中保持稳定:

     

唯一:帐户的每个原始联系人都必须拥有自己的源ID。   如果您不执行此操作,则会导致联系人出现问题   应用。请注意,同一帐户类型的两个原始联系人   可能具有相同的源ID。例如,原始联系人#Thomas; Thomas   金森"对于该帐户emily.dickinson@gmail.com是允许的   拥有与原始联系人相同的来源ID#Thomas; Thomas Higginson"为了   帐号emilyd@gmail.com。稳定:源ID是永久的一部分   原始联系人的在线服务数据。例如,如果   用户从应用程序设置中清除联系人存储并重新同步   恢复原始联系人应具有与以前相同的源ID。如果   你没有强制执行此操作,快捷方式将停止工作。

以下是官方文档:Contacts Provider

答案 3 :(得分:0)

有一个专门用于此目的的LOOKUP_KEY列。

尽管缺少文档,但似乎在新安装和不同手机之间是持久的。

文档:LOOKUP_KEY