android 导入到通讯录

前段时间项目中用到了导入到通讯录这个功能,今天总结一下贴出来,供需要的小伙伴使用,代码直接贴

 

1、权限

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

 2、代码:permission()

private void permission() {
        if (ContextCompat.checkSelfPermission((Activity) context, Manifest.permission.WRITE_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_CONTACTS}, 0);
        } else {
            addContacts("张三石","15836033333");//导入到通讯录
        }
    }
    @Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        switch (requestCode) {
            case 0: {
                if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {// 权限请求成功的操作
                    addContacts("张三石","15836033333");//导入到通讯录
                } else {// 权限请求失败的操作
                    Toast.makeText(context, "您拒绝了写入通讯录的权限,需要时您可以在设置中自行开启", Toast.LENGTH_SHORT).show();
                }
                break;
            }
        }
    }

    /**
     * 导入到通讯录
     */
    public void addContacts(String name , String tel){
        name = name+"@客户管理";
        //插入raw_contacts表,并获取_id属性
        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");
        //add Name
        values.put("raw_contact_id", contact_id);
        values.put(ContactsContract.Data.MIMETYPE,"vnd.android.cursor.item/name");
        values.put("data2", name);
        values.put("data1", name);
        resolver.insert(uri, values);
        values.clear();
        //add Phone
        values.put("raw_contact_id", contact_id);
        values.put(ContactsContract.Data.MIMETYPE,"vnd.android.cursor.item/phone_v2");
        values.put("data2", "2");   //手机
        values.put("data1", tel);
        resolver.insert(uri, values);
        values.clear();
        /*//add email
        values.put("raw_contact_id", contact_id);
        values.put(ContactsContract.Data.MIMETYPE,"vnd.android.cursor.item/email_v2");
        values.put("data2", "2");   //单位
        values.put("data1", "xzdong@xzdong.com");
        resolver.insert(uri, values);*/
    }

 

 

有什么疑问欢迎小伙伴们来提问,有什么不足欢迎大佬评论,转载请标明出处!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值