根据姓名操作联系人信息
/**
* @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();
}
}