Pro Android学习笔记(一六五):联系人API(8):控制整合

本文介绍了Android系统中联系人的整合机制,包括如何通过设置raw_contacts表中的aggregation_mode字段来控制不同rawcontact间的整合行为。此外,还详细解释了agg_exceptions表的作用及结构,以及在删除整合联系人时的处理方式。

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.youkuaiyun.com/flowingflying/以及作者@恺风Wei

当我们创建一个raw contact的时候,我们可以控制是否允许和其他raw contact进行整合,在raw_contacts表中有一个字段aggregation_mode,缺省为0。有下面三个数值,顾名思义,就是要整合,禁止整合、采用缺省策略。

TYPE_KEEP_TOGETHERTYPE_KEEP_SEPARATETYPE_AUTOMATIC

我们也可以指明某两个raw contacts是属于同一个整合联系人。在表格agg_exceptions中记录这些信息。agg_exceptions表格的URI为ContactsContract.AggregationExceptions.CONTENT_URI。该表格的格式如下:

CREATE TABLE agg_exceptions
(_id INTEGER PRIMARY KEY AUTOINCREMENT,
type INTEGER NOT NULL,
raw_contact_id1 INTEGER REFERENCES raw_contacts(_id),
raw_contact_id2 INTEGER REFERENCES raw_contacts(_id))

相关字段的java定义,可以在类ContactsContract.AggregationExceptions中查到。如果有N个要智能整合,那就是A和B整合,A和C整合,就是A、B、C要整合。

在Android的联系人需要和云端的同步,例如Gmail联系人。因此在删除某个整合联系人的时候,需要删除相关的raw contact,这是将其标记为deleted,当云端同步后,再将之从设备中永久删除。

相关链接: 我的Android开发相关文章

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值