package com.itheima74.operatecontacts;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

/**
 * 读写系统联系人
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    // 点击按钮,读取系统联系人
    public void click1(View view) {
        // 1.先查raw_contacts_id列查询共有几条联系人
        ContentResolver contentResolver = getContentResolver();
        Cursor cursor_raw_contacts = contentResolver.query(Uri.parse("content://com.android.contacts/raw_contacts"),
                new String[]{"_id"}, null, null, null);
        if (cursor_raw_contacts != null && cursor_raw_contacts.getCount() > 0) {
            while (cursor_raw_contacts.moveToNext()) {
                ContactsBean contactsBean = new ContactsBean();
                String _id = cursor_raw_contacts.getString(0);
                //2.再根据raw_contact_id(_id)datadata1mimetype                Cursor cursor_data = contentResolver.query(Uri.parse("content://com.android.contacts/data"),
                        new String[]{"data1", "mimetype"}, "raw_contact_id=?", new String[]{_id}, null);
                if (cursor_data != null && cursor_data.getCount() > 0) {
                    while (cursor_data.moveToNext()) {
                        String data1 = cursor_data.getString(0);
                        String mimetype = cursor_data.getString(1);
                        if ("vnd.android.cursor.item/name".equals(mimetype)) {
                            contactsBean.name = data1;
                        } else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
                            contactsBean.phone = data1;
                        } else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
                            contactsBean.email = data1;
                        }
                    }
                    System.out.println(contactsBean);
                    cursor_data.close();
                }
            }
            cursor_raw_contacts.close();
        }
    }

    // 点击按钮,插入一条联系人
    public void click2(View view) {
        // 1.先查raw_contacts_id列查询共有几条联系人,在原有的基础上_id1
        ContentResolver contentResolver = getContentResolver();
        Cursor cursor_raw_contacts = contentResolver.query(Uri.parse("content://com.android.contacts/raw_contacts"),
                new String[]{"_id"}, null, null, null);

        int count = 0;// 定义一个变量,保存联系人个数
        if (cursor_raw_contacts != null && cursor_raw_contacts.getCount() > 0) {
            while (cursor_raw_contacts.moveToNext()) {
                count++;
            }
            cursor_raw_contacts.close();
        }
        count = count + 1;// 在原有的基础上加1
        // 插入一条数据
        ContentValues values = new ContentValues();
        values.put("_id", count);
        contentResolver.insert(Uri.parse("content://com.android.contacts/raw_contacts"), values);

        //2. data表中插入相应的数据
        ContentValues nameValues = new ContentValues();
        nameValues.put("raw_contact_id", count);
        nameValues.put("mimetype", "vnd.android.cursor.item/name");
        nameValues.put("data1", "张三");
        contentResolver.insert(Uri.parse("content://com.android.contacts/data"), nameValues);

        ContentValues phoneValues = new ContentValues();
        phoneValues.put("raw_contact_id", count);
        phoneValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
        phoneValues.put("data1", "120");
        contentResolver.insert(Uri.parse("content://com.android.contacts/data"), phoneValues);

        ContentValues emailValues = new ContentValues();
        emailValues.put("raw_contact_id", count);
        emailValues.put("mimetype", "vnd.android.cursor.item/email_v2");
        emailValues.put("data1", "120@qq.com");
        contentResolver.insert(Uri.parse("content://com.android.contacts/data"), emailValues);

        Toast.makeText(this, "插入成功", Toast.LENGTH_SHORT).show();
    }
}
package com.itheima74.operatecontacts;

/**
 * Created by My on 2017/2/25.
 */

class ContactsBean {

    String name;
    String phone;
    String email;

    @Override
    public String toString() {
        return "ContactsBean{" +
                "name='" + name + '\'' +
                ", phone='" + phone + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐