关闭

Android 读取手机联系人信息

标签: Android读取联系人
240人阅读 评论(0) 收藏 举报
分类:
-------------------读取联系人信息-------------------

项目名称:ReadContact


需要权限:

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



使用:

private List<Map<String, String>> contact = new ArrayList<Map<String, String>>();
	select_contact = (ListView) findViewById(R.id.list);
		// 拿到联系人
		contact = getContactInfo();
		// ListView适配器
		select_contact.setAdapter(new SimpleAdapter(this, contact, R.layout.contact_item_view,
				new String[] { "name", "number" }, new int[] { R.id.tv_name, R.id.tv_number }));

获取联系人信息


<pre name="code" class="java">private List<Map<String, String>> getContactInfo() {

		List<Map<String, String>> contact_info = new ArrayList<Map<String, String>>();
		// 1.连接数据库
		ContentResolver resolver = getContentResolver();
		// raw_contacts表
		Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
		// data表
		Uri datauri = Uri.parse("content://com.android.contacts/data");
		// 如果使用 raw_contact_id会出现Null 所以采用_id
		String projection[] = { "_id" };
		Cursor cursor = resolver.query(uri, projection, null, null, null);

		if (cursor != null && cursor.getCount() > 0) {

			while (cursor.moveToNext()) {
				// 创建一个新的Map添加到集合中
				Map<String, String> map = new HashMap<String, String>();
				// 拿到raw_contacts表的ID
				String id = cursor.getString(0);
				// 获取的列
				String data_projection[] = { "data1", "mimetype" };
				// 查询条件
				String selectionArgs[] = { id };
				Cursor data_cursor = resolver.query(datauri, data_projection, "raw_contact_id = ?", selectionArgs,
						null);

				if (data_cursor != null && data_cursor.getCount() > 0) {

					while (data_cursor.moveToNext()) {
						String data1 = data_cursor.getString(0);
						String mimetype = data_cursor.getString(1);

						if (mimetype.equals("vnd.android.cursor.item/name")) {// 名字
							map.put("name", data1);
						} else if (mimetype.equals("vnd.android.cursor.item/phone_v2")) {// 电话号码
							map.put("number", data1);
						}
					}
					// 检查是否两个参数都有才添加到List
					if (map.get("name") != null && map.get("number") != null) {
						contact_info.add(map);
					}

				}
				data_cursor.close();

			}
		}
		cursor.close();
		return contact_info;
	}




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14571次
    • 积分:393
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:4篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论