Android通讯录查询篇--ContactsContract.Data
2010-12-18 08:03:45 来源:WEB开发网data11 TEXT,
data12 TEXT,
data13 TEXT,
data14 TEXT,
data15 TEXT,
data_sync1 TEXT,
data_sync2 TEXT,
data_sync3 TEXT,
data_sync4 TEXT );
下面还有点索引和触发器的信息就不看了,结合查询的数据看一下。其中“_id”就是表的一个自增id字段。第二个package_id暂时没用到,数据里面全是空。第三个字段minetype_id应该就是MIMETYPE了(其实还是有点不一样的)。后的raw_contact_id就是名片的ID。再看后的data1,data2等字段,每条数据中的这几项都不大相同,准确的说,minetype_id字段不同的数据data1,data2 等字段的数据就不同。
现在应该就有一个概念了,以前说的MIMETYPE的值确定Data.DATA1等的值的类型的意思就是在data数据库中通过 mimetype_id的值就可以确定data1,data2等字段的真正意义。也就是说在data数据库中通过minetype_id的值可以确定那一条数据到底是存储的姓名,还是电话,还是E-mail或者其它。
这样一来,如果我们要查询某个特定的数据的时候就可以直接查询data表里面的data1,data2这类字段的值,而唯一的必要条件就是在 where条件语句里面将minetype_id赋为对应的值。这样就有了一个统一的数据访问方法。而且可以通过这个表查到所以想要的数据。
所以如果想要通过姓名查找一个人的电话就可以这样了,先通过设置MIMETYPE 为
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME ,查找姓名所对应的 RAW_CONTACT_ID 。再将MIMETYPE 设置为
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE,查找上面找到的 RAW_CONTACT_ID 所对应的电话就可以了。
按这个细路就可以写代码了:
view source
print?
01
更多精彩赞助商链接
热点阅读最新推荐
飞鹰联盟成员网站 Copyright © 2003-2013 CnCms.Com. All Rights Reserved 京ICP备10000768号
|