根据姓名操作联系人信息
/** * @description 根据姓名查找联系人信息 * @param name */ public String queryInfoThrougName(String name) { Uri uri = Uri.parse("content://com.android.contacts/contacts"); // 访问raw_contacts表 ContentResolver resolver = context.getContentResolver(); Cursor cursor = resolver.query(uri, new String[] { Data._ID }, "display_name=?", new String[] { name }, null); while (cursor.moveToNext()) { int id = cursor.getInt(0);// 获得id并且在data中寻找数据 uri = Uri.parse("content://com.android.contacts/contacts/" + id + "/data"); // 如果要获得data表中某个id对应的数据,则URI为content://com.android.contacts/contacts/#/data Cursor cursor2 = resolver.query(uri, new String[] { Data.DATA1, Data.MIMETYPE }, null, null, null); // data1存储各个记录的总数据,mimetype存放记录的类型,如电话、email等 while (cursor2.moveToNext()) { String data = cursor2 .getString(cursor2.getColumnIndex("data1")); if (cursor2.getString(cursor2.getColumnIndex("mimetype")) .equals("vnd.android.cursor.item/name")) { // 如果是名字 System.out.println("name-->" + data); } else if (cursor2 .getString(cursor2.getColumnIndex("mimetype")).equals( "vnd.android.cursor.item/phone_v2")) { // 如果是电话 System.out.println("num-->" + data); } else if (cursor2 .getString(cursor2.getColumnIndex("mimetype")).equals( "vnd.android.cursor.item/email_v2")) { // 如果是email System.out.println("email---->" + data); return data; } else if (cursor2 .getString(cursor2.getColumnIndex("mimetype")).equals( "vnd.android.cursor.item/postal-address_v2")) { // 如果是地址 System.out.println("add-->" + data); } else if (cursor2 .getString(cursor2.getColumnIndex("mimetype")).equals( "vnd.android.cursor.item/organization")) { // 如果是组织 System.out.println("organiazation-->" + data); } } } return null; }
/** * @description 插入姓名,电话,email * @param name * @param phoneNumber */ private void insertValue(String name, String phoneNumber, String email) { try { Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); ContentResolver resolver = getContentResolver(); ContentValues values = new ContentValues(); long contact_id = ContentUris.parseId(resolver.insert(uri, values)); // 插入data表 uri = Uri.parse("content://com.android.contacts/data"); // 姓名 values.put("raw_contact_id", contact_id); values.put(Data.MIMETYPE, "vnd.android.cursor.item/name"); values.put("data1", name); resolver.insert(uri, values); values.clear(); // 电话号码 values.put("raw_contact_id", contact_id); values.put(Data.MIMETYPE, "vnd.android.cursor.item/phone_v2"); values.put("data1", phoneNumber); resolver.insert(uri, values); values.clear(); // email values.put("raw_contact_id", contact_id); values.put(Data.MIMETYPE, "vnd.android.cursor.item/email_v2"); values.put("data1", email); context.getContentResolver().insert( Uri.parse("content://com.android.contacts/data"), values); Toast.makeText(context, "添加成功!", Toast.LENGTH_SHORT).show(); } catch (Exception e) { Toast.makeText(context, "添加失败,请重试", Toast.LENGTH_SHORT).show(); } }