//增加权限,读取联系人,和添加添加联系人,根据自己需求添加 <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(); } }
读取手机联系人,复杂(姓名,电话,邮箱)
最新推荐文章于 2024-02-22 16:25:51 发布