WEB开发网
开发学院手机开发Android 开发 Android通讯录查询篇--ContactsContract.Data 阅读

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 );下面还有点索引和触发器的信息就不看了,结合查询的数据看一下,Andr

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

上一页  1 2 3 4 5 6 7  下一页

Tags:Android 通讯录 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接