android联系人操作

根据姓名操作联系人信息

/**
	 * @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();
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值