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

1.手机中的联系人信息是经常用到的一个功能,下面这段代码实现了获取联系人信息的功能

private List<Contact> initContactList() {
		List<Contact> contactList = new ArrayList<Contact>();

		// 查询联系人数据
		Cursor cursor = getContentResolver().query(
				ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
		while (cursor.moveToNext()) {
			Contact contact = new Contact();
			// 获取联系人的Id
			String contactId = cursor.getString(cursor
					.getColumnIndex(ContactsContract.Contacts._ID));
			// 获取联系人的姓名
			String contactName = cursor.getString(cursor
					.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
			contact.setContactName(contactName);

			// 有联系人姓名得到对应的拼音
			String pinyin = PinyinUtils.getPinyin(contactName);
			contact.setPinyin(pinyin);

			Cursor phoneCursor = getContentResolver().query(
					ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
					null,
					ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "="
							+ contactId, null, null);

			while (phoneCursor.moveToNext()) {
				String phoneNumber = phoneCursor
						.getString(phoneCursor
								.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
				contact.setPhoneNumber(phoneNumber);
			}

			if (null != phoneCursor && !phoneCursor.isClosed()) {
				phoneCursor.close();
			}

			contactList.add(contact);
		}

		if (null != cursor && !cursor.isClosed()) {
			cursor.close();
		}

		Log.i("", contactList.toString());

		return contactList;
	}








参考:http://fanfq.iteye.com/blog/779569


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值