请参阅Android Developers网站上的技术资源,在“ 使用联系人API”中有关自动汇总联系人数据的部分。
如文章所述:
添加或修改原始联系人时,系统会寻找匹配(重叠)的原始联系人以与其进行汇总。它可能找不到任何匹配的原始联系人,在这种情况下,它将创建仅包含原始原始联系人的聚合联系人。如果找到单个匹配项,则会创建一个包含两个原始联系人的新联系人。它甚至可能会找到多个相似的原始联系人,在这种情况下,它将选择最接近的匹配项。
如果满足以下条件中的至少一个,则两个原始联系人被视为匹配:
- 它们具有匹配的名称。
- 它们的名称由相同的单词组成,但顺序不同(例如
"Bob Parr"
和"Parr, Bob"
)
- 其中一个具有另一个的通用简称(例如
"Bob Parr"
和"Robert Parr"
)
- 其中一个只有名字或姓氏,并且与另一个原始联系人匹配。该规则不太可靠,因此仅在两个原始联系人还共享其他一些数据(例如电话号码,电子邮件地址或昵称(例如
Helen ["elastigirl"] = Helen Parr ["elastigirl"]
))时适用
- 两个原始联系人中至少有一个完全缺少姓名,他们共享一个电话号码,一个电子邮件地址或一个昵称(例如,
Bob Parr [incredible@android.com] = incredible@android.com
)。
比较名称时,系统会忽略大小写差异(Bob=BOB=bob)
和变音符号(Hélène=Helene)
。当比较两个电话号码,系统会忽略特殊字符,例如"*"
,"#"
,"(", ")"
,和空白。同样,如果两个数字之间的唯一区别是一个拥有国家代码,而另一个没有国家代码,则系统会将其视为匹配项(日本国家代码中的数字除外)
自动聚合不是永久的;组成原始联系人的任何更改都可能创建新的聚合或破坏现有的聚合。
然后,本文继续说明应用程序可以分配给它创建的原始联系人的各种模式。根据模式,系统将:
- 当发现与其他联系人的相似性时,自动汇总该联系人。如果不再存在相似之处,则将删除这些聚合。
- 切勿将联系人与其他任何联系人聚集在一起。
- 即使该联系人发生更改,以至于该联系人将被从聚合组中删除,也不会对其进行任何进一步的聚合。
除了这种自动聚合外,还允许应用程序手动设置聚合联系人。在这些情况下,算法取决于应用程序。
最后,您可以通过编辑一对联系人中的一个,然后从溢出菜单中进行选择,在“ 人脉” 应用中手动加入联系人Join
。