读取手机联系人,复杂(姓名,电话,邮箱)

来源:互联网 发布:软件业务销售合同范本 编辑:程序博客网 时间:2024/05/01 00:41
//增加权限,读取联系人,和添加添加联系人,根据自己需求添加    <uses-permission android:name="android.permission.READ_CONTACTS" />    <uses-permission android:name="android.permission.WRITE_CONTACTS" />    /**     * raw_contacts 这个表中存放的是联系人的id data 这个表中存放的是联系人的信息,例如 电话 姓名 邮箱     * 自定义方法查询手机联系人     */    private void SelectContact() {        ContentResolver content = getContentResolver();        Uri raw_uri = Uri.parse("content://com.android.contacts/raw_contacts");        Uri data_uri = Uri.parse("content://com.android.contacts/data");        Cursor cursor = content.query(raw_uri, null, null, null, null);        ArrayList<Person> list = new ArrayList<Person>();        // 循环查询raw_contacts表中的contact_id        while (cursor.moveToNext()) {            int id = cursor.getInt(cursor.getColumnIndex("contact_id"));            // 通过id去查询data表中的data1 这个列中的数据            Cursor data_cursor = content.query(data_uri, null,                    "raw_contact_id=?", new String[] { id + "" }, null);            Person p = new Person();            while (data_cursor.moveToNext()) {                String data1 = data_cursor.getString(data_cursor                        .getColumnIndex("data1"));                String type = data_cursor.getString(data_cursor                        .getColumnIndex("mimetype"));                // 把查询到的类型和eamil和phone和name的系统类型进行比较,如果一致则设置到person对象中                if ("vnd.android.cursor.item/email_v2".equals(type))                    p.setEmail(data1);                else if ("vnd.android.cursor.item/phone_v2".equals(type))                    p.setPhone(data1);                else if ("vnd.android.cursor.item/name".equals(type))                    p.setName(data1);            }            // 把查询结果放到List集合中            list.add(p);        }        Toast.makeText(this, list.toString(), Toast.LENGTH_SHORT).show();    }}
阅读全文
0 0
原创粉丝点击