android – 插入新的原始联系人时强行创建新联系人

根据官方文档,当新的RawContact插入到联系人的数据库中时,系统会启动聚合机制以查找将与其插入的RawContact聚合的联系人.

如果联系人数据库中存在类似的联系信息,则插入的RawContact将与现有联系人聚合,如果没有此类信息,系统将创建新的联系人,并将插入的RawContact聚合在一起.

我已经查看了ContactsContract.AggregationExceptions和ContactsContract.Contacts.AggregationSuggestions但是没有找到任何可以帮助我弄清楚如何在我的应用程序中插入新的RawContact时强制告诉系统创建新联系人的信息.

如果有人知道如何做到这一点,我很乐意得到你的建议.

谢谢

解决方法

要创建新联系人,请在ContactsContract.RawContacts中插入ACCOUNT_NAME和ACCOUNT_TYPE的值,然后获取新行的_ID.然后在将联系人数据插入ContactsContract.Data时使用此_ID填写RAW_CONTACT_ID.

ContactsContract.RawContacts中的新_ID不应该已经存在,因此在ContactsContract.Data中插入/更新相应数据之前不会聚合.

ContactsContract.Contacts只是一个自动聚合表,可以简化数据查询.你不应该直接改变它.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...