获取系统通讯录信息
/** * 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(); }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!