手机联系人的读取和插入

手机联系人的读取

实现步骤

① 获取内容解析者

ContentResolver resolver = getContentResolver();

② 创建Uri

Uri raw_contacts = Uri.parse("content://com.android.contacts/raw_contacts");
Uri data = Uri.parse("content://com.android.contacts/data");

③ 先查询raw_contents表中的content_id

 Cursor cursor = resolver.query(raw_contacts, new String[]{"contact_id"}, null, null, null);

④ 遍历其中的内容

 while (cursor.moveToNext()){
        String id = cursor.getString(0);
        Contat contat = new Contat();
        Log.e(TAG,id);

        Cursor cursor1 = resolver.query(data, new String[]{"data1", "mimetype"}, "raw_contact_id=?", new String[]{id}, null);
        while (cursor1.moveToNext()){
            String data1 = cursor1.getString(0);
            String mimetype = cursor1.getString(1);
            Log.e(TAG,data1+"********"+mimetype);
            if ("vnd.android.cursor.item/name".equals(mimetype)){

                contat.name = data1;
            }else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)){

                contat.phone = data1;
            }else if ("vnd.android.cursor.item/email_v2".equals(mimetype)){

                contat.email = data1;
            }else if ("vnd.android.cursor.item/postal-address_v2".equals(mimetype)){

                contat.address = data1;
            }

            contats.add(contat);
        }
    }

⑤ 将存在集合中的内容便利出来

//所有内容都保存在了集合中
    for(Contat contat:contats){

        Log.e("contat",contat.toString());
    }

注意:
在读取联系人的时候需要权限

    <uses-permission android:name="android.permission.READ_CONTACTS"/>

手机联系人的插入

实现步骤

① 获取用户的输入

et_name = (EditText) findViewById(R.id.et_name);
et_tel = (EditText) findViewById(R.id.et_tel);
et_address = (EditText) findViewById(R.id.et_address);
et_email = (EditText) findViewById(R.id.et_email);

 String address = et_address.getText().toString().trim();
    String name = et_name.getText().toString().trim();
    String tel = et_tel.getText().toString().trim();
    String email = et_email.getText().toString().trim();

② 获取内容解析者

ContentResolver resolver = getContentResolver();

③ 创建查询raw_contacts表的uri

 Uri raw_contacts = Uri.parse("content://com.android.contacts/raw_contacts");
    Uri data = Uri.parse("content://com.android.contacts/data");

④ 获取已经存在的联系人个数 查询raw_contat表中有多少数据,并获取要插入的ID

Cursor cursor = resolver.query(raw_contacts, new String[]{"contact_id"}, null, null, null);
int count = cursor.getCount() + 1;

⑤ 向raw_contact插入数据

 ContentValues values = new ContentValues();
    values.put("contact_id",count);
    resolver.insert(raw_contacts,values);
    //向data中插入数据raw_contat_id是一样的
    ContentValues values1 = new ContentValues();
    //插入地址数据
    values1.put("raw_contact_id",count);
    values1.put("data1",address);
    values1.put("mimetype","vnd.android.cursor.item/postal-address_v2");
    resolver.insert(data,values1);
    //插入姓名数据
    values1.put("data1",name);
    values1.put("mimetype","vnd.android.cursor.item/name");
    resolver.insert(data,values1);
    //插入电话数据
    values1.put("data1",tel);
    values1.put("mimetype","vnd.android.cursor.item/phone_v2");
    resolver.insert(data,values1);
    //插入邮箱数据
    values1.put("data1",email);
    values1.put("mimetype","vnd.android.cursor.item/email_v2");
    resolver.insert(data,values1);

注意:
读取和插入手机联系人信息,需要获取权限

 <uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值