分页读取手机联系人


<span style="font-size:18px;">/**
	 * 手机联系人个数
	 */
	public static int linkManCount = -1;
	/**
	 *  每页显示联系人个数
	 */
	public static int pageCount = 20;</span>


<span style="font-size:18px;">/**
	 * 获取手机联系人,并返回
	 * 
	 * @param mContext
	 *            上下文对象
	 * @param pageSize
	 *            当前需要获取第几页数据
	 * @return
	 */
	public ArrayList<helperPoSort> getLinkMan(Context mContext, int pageSize
			) {
		ArrayList<helperPoSort> linkMans = new ArrayList<helperPoSort>();
		ContentResolver cr = mContext.getContentResolver();
		// 取得电话本中开始一项的光标
		Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
				null, null, null);
		// 向下移动光标
		linkManCount = cursor.getCount();
		if (cursor != null && ((pageSize - 1) * pageCount) < linkManCount) {
			cursor.moveToPosition((pageSize - 1) * pageCount);
			int i = 0;
			while (cursor.moveToNext()) {
				if (i < pageCount) {
					Cursor phone = null;
					String contact = null;
					try {
						// 取得联系人名字
						int nameFieldColumnIndex = cursor
								.getColumnIndex(PhoneLookup.DISPLAY_NAME);
						contact = cursor.getString(nameFieldColumnIndex);
						// 取得电话号码
						String ContactId = cursor.getString(cursor
								.getColumnIndex(ContactsContract.Contacts._ID));
						phone = cr
								.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
										null,
										ContactsContract.CommonDataKinds.Phone.CONTACT_ID
												+ "=" + ContactId, null, null);
					} catch (Exception e) {
						LogUtil.d("TAG", "获取联系人时,在游标获取phone时报错!");
						break;
					}
					LogUtil.d("TAG", "Cursor phone" + phone);
					if (phone != null) {
						while (phone.moveToNext()) {
							String Number = phone
									.getString(phone
											.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
							// string += (contact + ":" + Number + "");
							helperPoSort man = new helperPoSort();
							man.setStr1(contact);
							man.setStr2(Number);
							LogUtil.d("TAG", contact + ":" + Number + "");
							linkMans.add(man);
						}
					}
					i = i + 1;
				} else {
					break;
				}
			}
		}
		cursor.close();
		return  linkMans;
	}</span>

需要权限:<uses-permission android:name="android.permission.READ_CONTACTS" />

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值