Android 读取手机联系人信息

原创 2015年11月21日 18:54:24
-------------------读取联系人信息-------------------

项目名称: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;
	}




最快速读取手机通讯录中联系人信息

作为一名Android开发,读写手机通讯录的操作人人都会,但是有没有遇到通讯录存在好几百条联系人信息时候读取的速度会明显变慢呢?本文就是介绍解决办法,我总结出了以下几种办法 提供参考: 一、线程 有A...
  • qq569699973
  • qq569699973
  • 2016年07月01日 16:22
  • 3148

在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱

1:androidmanifest.xml的内容 xml version="1.0" encoding="utf-8"?> manifest xmlns:android="http://schem...
  • SunCherryDream
  • SunCherryDream
  • 2016年10月23日 18:22
  • 3031

Android中获取手机中的联系人信息

Android获取手机中的联系人信息
  • hong_world
  • hong_world
  • 2016年06月11日 21:22
  • 6091

[android开发]ContentResolver读取手机联系人信息

这个类是在别人的方法基础上修改的. class GetContacts implements Runnable { @Override public void run() {...
  • ace1573
  • ace1573
  • 2015年03月05日 10:48
  • 406

Android项目——读取手机联系人信息

加入读取联系人信息的权限 "android.permission.READ_CONTACTS"/> content://com.android.contacts/contacts 操作的数...
  • yangchao13341408947
  • yangchao13341408947
  • 2014年08月21日 16:01
  • 12646

Android 1.5 SDK 读取联系人[获取手机通讯录信息(SDK1.5)]

Android中读取电话本Contacts联系人的所有电话号信息 通讯录上的信息,存储在两个地方,一个是SIM卡,一个是手机本地, 这个大家首先要明确。我们读取联系人就要读取两个地方,因为我一直...
  • e_wsq
  • e_wsq
  • 2012年02月25日 12:58
  • 491

android 获取手机通讯录联系人信息 点击直接拨打电话

  • 2015年04月07日 12:03
  • 1.08MB
  • 下载

Android中获取手机中的联系人信息

1.0、查看系统通讯录的表,表路径:data—>data—>com.android.providers.contacts—>databases—>contacts2.db  1.1、其中重要的表有:...
  • halaoda
  • halaoda
  • 2017年12月29日 08:46
  • 38

【Android】获取手机通讯录中的联系人信息

1.手机中的联系人信息是经常用到的一个功能,下面这段代码
  • u010119170
  • u010119170
  • 2014年07月30日 03:20
  • 3093

Android通过查询数据库手机联系人信息

很好用的工具类呢
  • qq_38940158
  • qq_38940158
  • 2017年11月16日 20:08
  • 249
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 读取手机联系人信息
举报原因:
原因补充:

(最多只允许输入30个字)