获取系统通讯录信息
/**
* 1. 查询raw_contacts表里的content_id有多少个联系人
* 2. 查询data表,每个联系人有多少条数据
* 3. 根据mimetype数据类型判断数据
*/
public void query(View v){
//查询raw_contacts表里的content_id有多少个联系人
ContentResolver resolver = getContentResolver();
Uri rawUri = Uri.parse("content://com.android.contacts/raw_contacts/");
Cursor rawCursor = resolver.query(rawUri, new String[]{"contact_id"}, null,null,null);
//遍历每个联系人的数据
while(rawCursor.moveToNext()){
//获取联系人的id
String id = rawCursor.getString(rawCursor.getColumnIndex("contact_id"));
//查询data表
Uri dataUri = Uri.parse("content://com.android.contacts/data/");
Cursor dataCursor = resolver.query(dataUri, new String[]{"data1","mimetype"},
"raw_contact_id=?", new String[]{id}, null);
//打印data表中所有的字段
/* Cursor curosr = resolver.query(dataUri, null, null, null, null);
String[] columnNames = curosr.getColumnNames();
for(String col:columnNames){
System.out.println(col);
}*/
//每个联系人有多少条数据
while(dataCursor.moveToNext()){
String data1 = dataCursor.getString(0);
// System.out.println(data1);
//根据mimetype数据类型判断数据
String type = dataCursor.getString(1);
// System.out.println(type);
if ("vnd.android.cursor.item/email_v2".equals(type)) {
System.out.println("邮箱:"+data1);
}else if("vnd.android.cursor.item/name".equals(type)){
System.out.println("姓名:"+data1);
}else if("vnd.android.cursor.item/phone_v2".equals(type)){
System.out.println("手机号码:"+data1);
}
}
dataCursor.close();
}
rawCursor.close();
}
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
浙公网安备 33010602011771号