查询通讯录联系人的信息
a.系统联系人的数据库保存位置:data/data/com.android.providers.contacts/databases contacts2.db
b.主要包含三张表,contacts,raw_contacts,data可以通过sqlitespy打开查看。
contacts表:contacts表中一条记录对应联系人列表中的一个联系人(通过j可能包含多个联系人的信息),此表不可直接插入联系人。它是raw_contacts表记录的整合
raw_contacts表:未经处理的联系人,当插入一个联系人时,系统会检测当前表中是否有存在相同号码、姓名的联系人,根据用户设置是否聚合,将可以整合的记录指向同一个contact_id
data表:data表中的记录仅仅保存的是某一种类型的数据,里面有一个地段mimetype_id,用来关联mimetype表中的类型,一个raw_contact一般会对应多条data记录
关系如下图所示:
访问联系人数据时,一般是通过注册的URI:
查询用的URI,
Contacts表:ContactsContract.Contacts.CONTENT_URI
Data(data1-data15)表:对于不同的mimetype,保存不同的数据,如photo类型的数据,会保存在data1