查找联系人信息
1.联系人系统存在com.android.providers.contacts \ databases\ contacts2.db 这个数据库中
2.系统通过contentprovider 操作联系人数据 其实操作的是如下三张表
data 存放数据的具体信息
mimetypes 指定数据所对应的类型 phone im email
raw_contacts 表 存放联系人的 id的表
3.查看源码.找到联系人的Uri "content://com.android.contacts/contacts"
4.创建一个类.
Uri uri = Uri.parse("content://com.android.contacts/contacts/contact/1/data");
Cursor cursor = getContext().getContentResolver().query(uri,null,"raw_contact_id=?",new String[]{"1"},null);
第一个参数Uri
第二个参数查询那一列,null为查询所以列
第三个参数查询条件
第四个参数查询条件赋值
第五个参数是排序条件.null为不排序
/*if(cursor.moveToFirst()){
String[] columns = cursor.getColumnName(); //获取所有字段
for(int i=0;i<columns.length;i++){
System.out.println(columns[i]);
}
获取所有字段后,找到名字所对应的列名.然后获取名字
cursor.getString(cursor.getColumnIndex("display_name"));
*/
while(cursor.moveToNext()){
if("vnd.android.cursor.item/eamil_v2".equals(cursor.getSting(cursor.getColumnIndex("mimetype")))){
System.out.println("email为"+cursor.getString(cursor.getColumnIndex("data1"));
}
if("vnd.android.cursor.item/phone_v2".equals(cursor.getSting(cursor.getColumnIndex("mimetype")))){
System.out.println("电话为"+cursor.getString(cursor.getColumnIndex("data1"));
}
if("vnd.android.cursor.item/name".equals(cursor.getSting(cursor.getColumnIndex("mimetype")))){
System.out.println("姓名为"+cursor.getString(cursor.getColumnIndex("data1"));
}
}