您的位置:首页 > 移动开发 > Android开发

Android学习之获得手机联系人基本信息

2011-11-06 17:18 435 查看
直接上代码了...

View Code

Cursor cCursor = getContentResolver().query(Contacts.CONTENT_URI, null,null, null, null);
Cursor dCursor;
startManagingCursor(cCursor);
while (cCursor.moveToNext()) {
//直接获得名字
System.out.println("姓名:"+ cCursor.getString(cCursor.getColumnIndex(Contacts.DISPLAY_NAME)));
//查询Data表,根据Contacts表的id分类
dCursor = getContentResolver().query(Data.CONTENT_URI,null,Data.RAW_CONTACT_ID + "=?",new String[] { cCursor.getString(cCursor.getColumnIndex(Contacts._ID)) }, null);
startManagingCursor(dCursor);
while (dCursor.moveToNext()) {
//判断Data表中这一行的MIMETYPE是否为Phone
if (dCursor.getString(dCursor.getColumnIndex(Data.MIMETYPE)).equals(Phone.CONTENT_ITEM_TYPE)) {//是
//switchData表中的DATA2的字段的值
switch (dCursor.getInt(dCursor.getColumnIndex(Data.DATA2))) {
//如果为Phone.TYPE_MOBILE则为手机号码
case Phone.TYPE_MOBILE:
System.out.println("手机号码为:"+ dCursor.getString(dCursor.getColumnIndex(Data.DATA1)));
break;
//如果为Phone.TYPE_HOME则为固定电话
case Phone.TYPE_HOME:
System.out.println("固定电话为:"+ dCursor.getString(dCursor.getColumnIndex(Data.DATA1)));
break;
}
}
}
}


再上contacts数据库中用到的表


这个表存放联系人的一些id什么的.


这个表存放对应contacts表中对应id的一些信息.数据的分类的话就对应mimetype_id.其中的data1,data2等等等,不同的mimetype对应不同的作用,举个例子,比如说mimetype为phone,则data1存放的就是电话号码,而data2存放的就是分类,比如手机号码,固定电话号码,公司号码等等,其他的自己实践一下就知道了。



我们就可以通过mimetype来判断Data存放的到底是什么数据.

我是用火狐的SQLite Manager来浏览数据库的,只要把对应数据库导出来即可用SQLite Manager来打开了。数据库在data/data下,好多,自己找自己想看的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: