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

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/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开发相关文章

你可能感兴趣的:(Pro Android学习笔记(一六五):联系人API(8):控制整合)