Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android分頁查詢獲取系統聯系人信息

android分頁查詢獲取系統聯系人信息

編輯:關於Android編程

package com.example.yqqmobilesafe.ContactProvider;

import java.util.ArrayList;
import java.util.List;


import android.R.integer;
import android.content.Context;
import android.database.Cursor;
import android.net.Uri;

import android.provider.ContactsContract;



import com.example.yqqmobilesafe.domain.ContactInfo;

public class ContactInfoProvider {
	private Context mContext;
	public ContactInfoProvider(Context context) {
		mContext=context;
		
	}
	/**
	 * 獲取系統聯系人信息
	 * @return
	 */
	public  List getSystemContactInfos(){
		List infos=new ArrayList();
		
		// 使用ContentResolver查找聯系人數據
		Cursor cursor = mContext.getContentResolver().query(
			ContactsContract.Contacts.CONTENT_URI, null, null,
			null, null);
		
		// 遍歷查詢結果,獲取系統中所有聯系人
		while (cursor.moveToNext())
		{
			ContactInfo info=new ContactInfo();
			// 獲取聯系人ID
			String contactId = cursor.getString(cursor
				.getColumnIndex(ContactsContract.Contacts._ID));
			// 獲取聯系人的名字
			String name = cursor.getString(cursor.getColumnIndex(
				ContactsContract.Contacts.DISPLAY_NAME));
			info.setContactName(name);
			
			// 使用ContentResolver查找聯系人的電話號碼
			Cursor phones = mContext.getContentResolver().query(
				ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
				null,
				ContactsContract.CommonDataKinds.Phone.CONTACT_ID
					+ " = " + contactId, null, null);
			
			// 遍歷查詢結果,獲取該聯系人的多個電話號碼
			while (phones.moveToNext())
			{
				// 獲取查詢結果中電話號碼列中數據。
				String phoneNumber = phones.getString(phones
					.getColumnIndex(ContactsContract
					.CommonDataKinds.Phone.NUMBER));
				info.setPhoneNumber(phoneNumber);
			}
			phones.close();
			
			infos.add(info);
			info=null;
		}
		cursor.close();
		
		return infos;
		
	}
	
	/**
	 * 分頁查詢系統聯系人信息
	 * @param pageSize 每頁最大的數目
	 * @param currentOffset 當前的偏移量
	 * @return
	 */
	public List getContactsByPage(int pageSize,int currentOffset) {
		
		List infos=new ArrayList();
				Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; 
				String[] projection = { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
										ContactsContract.CommonDataKinds.Phone.DATA1, "sort_key"};
				Cursor cursor = mContext.getContentResolver().query(uri, projection, null, null, "sort_key COLLATE LOCALIZED asc limit " + pageSize + " offset " + currentOffset);
				if (cursor != null) {
					
					while (cursor.moveToNext()) {
						
						ContactInfo info=new ContactInfo();
						String contactName = cursor.getString(0);
						String phoneNumber = cursor.getString(1);
						info.setContactName(contactName);
						info.setPhoneNumber(phoneNumber);
						infos.add(info);
						info=null;
					}
					cursor.close();
				
			
	}
				return infos;
	}
	
	/**
	 * 獲得系統聯系人的所有記錄數目
	 * @return
	 */
	public int getAllCounts(){
		int num=0;
		// 使用ContentResolver查找聯系人數據
				Cursor cursor = mContext.getContentResolver().query(
					ContactsContract.Contacts.CONTENT_URI, null, null,
					null, null);
				
				// 遍歷查詢結果,獲取系統中所有聯系人
				while (cursor.moveToNext())
				{
					num++;
				}
				cursor.close();
	

		return num;
	}
	

}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved