【发布时间】:2016-01-14 00:50:31
【问题描述】:
我无法在 Android 的联系人中找到有关聚合过程的详细信息。我知道ContactsContract.Contacts -> ContactsContract.RawContacts -> ContactsContract.Data 结构(如http://developer.android.com/guide/topics/providers/contacts-provider.html 所述),并且Contact 由Raw Contacts 组成,它们通过一个Contact_ID 组合在一起.
我特别想知道的是:在什么情况下将原始联系人分组为一个联系人?
我找到了this 问题和答案——特别是最后一个选项:
两个原始联系人中至少有一个完全没有姓名,并且他们共享一个电话号码、一个电子邮件地址或一个昵称(例如,
Bob Parr [incredible@android.com] = incredible@android.com)。
我试过了,但是,它似乎不起作用。我想知道我是否可以将原始联系人添加到本地联系人并只设置ACCOUNT_TYPE、ACCOUNT_NAME 和电话或电子邮件地址,如果这将是自动与已存在此电话号码或电子邮件地址的原始联系人聚合。比如:
(ContactsContract.Contacts.)_ID(类似于ContactsContract.RawContacts.Contact_ID):1188300 包括:
- 原始联系人 ID 20905
MIMETYPE = \email_v2ACCOUNT_TYPE = com.googleNAME = Example TestEMAIL = test@gmail.com - 原始联系人 ID 20897
MIMETYPE = \phone_v2ACCOUNT_TYPE = com.googleNAME = Example TestEMAIL = 123456
添加以下内容后:
- 原始联系人
MIMETYPE = \email_v2ACCOUNT_TYPE = com.exampleAppEMAIL = test@gmail.com
这个结果会变成:
(ContactsContract.Contacts.)_ID: 1188300 包括:
- 原始联系人 ID 20905
MIMETYPE = \email_v2ACCOUNT_TYPE = com.googleNAME = Example TestEMAIL = test@gmail.com 原始联系人 ID 20897
MIMETYPE = \phone_v2ACCOUNT_TYPE = com.googleNAME = Example TestEMAIL = 123456原始联系人 ID 20899(或任何号码)
MIMETYPE = \email_v2ACCOUNT_TYPE = com.exampleAppNAME = Example TestEMAIL = test@gmail.com
【问题讨论】: