根据官方文档,当联系人的数据库中插入新的RawContact
时,系统会启动聚合机制,以找到插入的Contact
将成为RawContact
的{{1}}与...汇总。
如果联系人数据库中存在类似的联系信息,则插入的RawContact
将与现有Contact
聚合,如果缺少此类信息,系统将创建新的Contact
1}}并将汇总插入的RawContact
。
我已经浏览了ContactsContract.AggregationExceptions
和ContactsContract.Contacts.AggregationSuggestions
,但没有找到任何可以帮助我弄清楚如何强制告诉系统创建新Contact
的信息我在我的应用程序中插入了一个新的RawContact
。
如果有人知道该怎么做,我很乐意得到你的建议。
谢谢
答案 0 :(得分:4)
要创建新联系人,请在ACCOUNT_NAME
中插入ACCOUNT_TYPE
和ContactsContract.RawContacts
的值,然后获取新行_ID
。在将联系人数据插入_ID
时,请使用此RAW_CONTACT_ID
填写ContactsContract.Data
。
_ID
中的新ContactsContract.RawContacts
不应该已经存在,因此在ContactsContract.Data
中插入/更新相应数据之前不会聚合。
ContactsContract.Contacts
只是一个自动聚合表,可以简化数据查询。你不应该直接改变它。