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项目——读取手机联系人信息

加入读取联系人信息的权限 "android.permission.READ_CONTACTS"/> content://com.android.contacts/contacts 操作的数...

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

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

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

这个类是在别人的方法基础上修改的. class GetContacts implements Runnable { @Override public void run() {...

Android获取手机内联系人信息

在Zipwhip的系统里面有这样一个功能,需要把Android手机里联系人同步上website上面。下面结合一个实例来看我们如何使用一个已有的content provider,展示了如何从已有的电话本...

Android初级教程获取手机系统联系人信息

在手机内部,对联系人信息存在对应的数据库。我们创建的而联系人信息都存在这张表中。如下是对数据库的截图,我已经对表和应该注意的地方做了红笔标注: 好了,现在可以根据数据库里面的数据来写代码...

Android手机获取通讯录联系人信息及短信广播实现

现在越来越多的android应用在注册时都要用到手机号码,通过获取手机验证码来完成注册。也有不少应用提供了手机通讯录备份功能,获得你的允许后把你的通讯录中的手机号码保存到服务器中,你要的时候又可以do...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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