内容提供者读取手机联系人

以下是没有添加动态权限  需要手动添加动态权限

1:添加权限

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

 读取系统通讯录  的URI

        //content://com.android.contacts/contacts// 通讯录里现有的联系人,不包括已删除的联系人

        //content://com.android.contacts/raw_contacts// 所有联系人,包括已删除的联系人

        //content://com.android.contacts/data


ContentResolver resolver = this.getContentResolver();    //获取内容解析器

        Uri contactsUri = Uri.parse("content://com.android.contacts/contacts");   //解析联系人的uri

        //解析联系人数据的uri

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

        //开始读取

        Cursor contactsCursor = resolver.query(contactsUri, null, null, null, null);   

        int count = contactsCursor.getCount(); // 联系人数量

        //判断联系人是否为空

        if (contactsCursor != null) {

            while (contactsCursor.moveToNext()) {

                    //获取联系人的id

                String contact_id = contactsCursor.getString(contactsCursor.getColumnIndex("_id"));

                    //通过id 查询联系人的数据信息

                Cursor dataCursor = resolver.query(dataUri, null, "contact_id=?", new String[]{contact_id}, null);

                // mimetype  data1

                while (dataCursor.moveToNext()) {

                    String mimetype = dataCursor.getString(dataCursor.getColumnIndex("mimeType"));

                    String data1 = dataCursor.getString(dataCursor.getColumnIndex("data1"));

                    Log.i("Haoxueren", contact_id + ":" + data1 + ":" + mimetype);

                        //判断是否是此字段  是的话就展示手机号

                    if (mimeType.equals("vnd.android.cursor.item/phone_v2")) {

                       String phone = data1;// 手机号

                    } else if (mimeType.equals("vnd.android.cursor.item/name")) {

                        String name = data1;//联系人姓名

                    }

                }

            }

        }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容