11

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

谢谢。

4

4 回答 4

4

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

如果您希望联系人 ID 保持一致,而与设备、平台无关,那么要么仅使用同步的 Google 联系人,要么编写自己的代码来生成唯一 ID,例如获取联系人号码、姓名等很少更改的哈希

于 2013-02-20T10:47:40.767 回答
3

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

一个是CONTACT_ID,另一个是RAW_CONTACT_ID

参考本教程。 安卓联系人

希望这会帮助你。

于 2012-09-06T17:27:32.633 回答
1
ContactsContract.RawContacts    SOURCE_ID

一个字符串值,用于将该原始联系人唯一标识到创建它的帐户中

当同步适配器创建新的原始联系人时,此列应设置为原始联系人的服务器唯一 ID。当 Android 应用程序创建新的原始联系人时,应用程序应将此列留空。这向同步适配器发出信号,它应该在服务器上创建一个新的原始联系人,并获取 SOURCE_ID 的值。特别是,每个帐户类型的源 ID 必须是唯一的,并且应该在同步之间保持稳定:

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

这是官方文档:Contacts Provider

于 2016-02-08T14:35:19.100 回答
-2

正是为此目的而存在 LOOKUP_KEY 列。

虽然文档很少,但它似乎在新安装和不同手机之间持续存在。

文档:LOOKUP_KEY

于 2018-09-22T17:41:01.260 回答