以下是没有添加动态权限 需要手动添加动态权限
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;//联系人姓名
}
}
}
}