Android通讯录操作

Android通讯录操作

  • 第一步:申请权限:Manifest.permission.WRITE_CONTACTS 。
  • 第二步:查询通讯录,代码如下:
        Cursor cursor = getContentResolver().query(ContactsContract.RawContacts.CONTENT_URI, null, null, null, null);
        while (cursor.moveToNext()) {

            int id = cursor.getInt(cursor.getColumnIndex(ContactsContract.RawContacts._ID));
            String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
            String phone = null;
            Cursor phoneCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    null, ContactsContract.Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(id)}, null);
            if (phoneCursor.moveToFirst()) {
                phone = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
            }
            phoneCursor.close();
			Log.d("vv","====name:" + name + "=====phone:" + phone);
        }
        cursor.close(); //关闭游标
  • 添加通讯录,代码如下:
 		// 首先向raw_contacts表中插入一条空记录,目的是获取raw_contact_id字段
        ContentValues values = new ContentValues();
        Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
        long rawContactId = ContentUris.parseId(rawContactUri);

        //添加姓名
        values.clear();
        values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
        values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, name);
        Uri nameUri = getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

	      // 添加 手机号
        values.clear();
        values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
        values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phone);
        Uri phoneUri = getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

		//添加备注信息
        values.clear();
        values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);
        values.put(ContactsContract.CommonDataKinds.Note.NOTE, "备注项信息");
        getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
  • 第三步,修改通讯录,代码如下:
        ContentValues values = new ContentValues();
        values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, name);
        values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, phone);
        int result = getContentResolver().update(ContactsContract.Data.CONTENT_URI, values,
                ContactsContract.Data.RAW_CONTACT_ID + "=?", new String[]{String.valueOf(id)}); id为通过Cursor查询出来的id
        if (result > 0) {
            toast("更新成功");
        } else {
            toast("更新失败");
        }

  • 第四步,删除通讯录,代码如下:
 int result =  getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI,
                                ContactsContract.RawContacts._ID + "=?", new String[]{String.valueOf(id)}); // id为通过Cursor查询出来的id
		if (result > 0) {
		    toast("删除成功");
		} else {
		    toast("删除失败");
		}




完毕

你可能感兴趣的:(android,java,开发语言)