Povider

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
public class MainActivity extends AppCompatActivity {

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

        editProvider();

        ContentResolver cr = getContentResolver();
        Cursor c = cr.query(ContactsContract.Contacts.CONTENT_URI, new String[] { ContactsContract.Contacts._ID,
                ContactsContract.Contacts.DISPLAY_NAME }, null, null, null);
        if (c != null) {
            while (c.moveToNext()) {
                int id = c.getInt(c.getColumnIndex("_id"));
                Log.i("info", "_id:" + id);
                Log.i("info", "name:" + c.getString(c.getColumnIndex("display_name")));
                Cursor c1 = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[] {
                                ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE },
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + id, null, null);
                // 根据联系人ID查询出联系人的电话号码
                if (c1 != null) {
                    while (c1.moveToNext()) {
                        int type = c1.getInt(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                        if (type == ContactsContract.CommonDataKinds.Phone.TYPE_HOME) {
                            Log.i("info", "家庭电话:" +
                                    c1.getString(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
                        } else if (type == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE) {
                            Log.i("info", "手机:"
                                   + c1.getString(c1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
                        }
                    }
                    c1.close();
                }
                // 根据联系人的ID去查询出联系人的邮箱地址
                Cursor c2 = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, new String[] {
                                ContactsContract.CommonDataKinds.Email.DATA, ContactsContract.CommonDataKinds.Email.TYPE },
                                ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + id,
                        null, null);
                if (c2 != null) {
                    while (c2.moveToNext()) {
                        int type = c2.getInt(c2.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                        if (type == ContactsContract.CommonDataKinds.Email.TYPE_WORK) {
                            Log.i("info", "工作邮箱:" +
                                    c2.getString(c2.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)));
                        }
                    }
                    c2.close();
                }
            }
            c.close();
        }
    }

    public void editProvider(){
        ContentResolver contentResolver = getContentResolver();
        //向联系人中插入数据
        ContentValues values = new ContentValues();
        Uri uri = contentResolver.insert(ContactsContract.RawContacts.CONTENT_URI, values);
        Long raw_contact_id = ContentUris.parseId(uri);

        values.clear();
        //插入人名
        values.put(ContactsContract.CommonDataKinds.StructuredName.RAW_CONTACT_ID, raw_contact_id);
        values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "添加人");
        values.put(ContactsContract.CommonDataKinds.StructuredName.MIMETYPE,
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
        uri = contentResolver.insert(ContactsContract.Data.CONTENT_URI, values);

        //插入电话信息
        values.clear();
        values.put(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID,raw_contact_id);
        values.put(ContactsContract.CommonDataKinds.Phone.NUMBER,"110");
        values.put(ContactsContract.CommonDataKinds.Phone.MIMETYPE,
                ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
        uri = contentResolver.insert(ContactsContract.Data.CONTENT_URI, values);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值