package com.iban.dao;import java.util.ArrayList;import java.util.List;import com.iban.pojo.User;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.provider.ContactsContract;public class ContactUtil { public static void getContact(Context context){ ContentResolver cr = context.getContentResolver(); Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);//查询通讯录 if(cursor.getCount()>0){ while (cursor.moveToNext()) { String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));//联系人id String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));//联系人名称 System.out.println("name:"+name); if(cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))>0){ //Query phone here. Covered next 在该处查询电话号码 Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null); while (pCur.moveToNext()) { // Do something with phones String phoneNumber = pCur.getString(pCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); System.out.println("number:"+phoneNumber); } pCur.close(); } } } } public ListgetUsers( Context context){ List listUser = new ArrayList (); ContentResolver resolver = context.getContentResolver(); String phoneNumber = ""; // 获得所有的联系人 Cursor cur = resolver.query( ContactsContract.Contacts.CONTENT_URI, null, null,null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); // 循环遍历 if (cur.moveToFirst()) { User user = new User(); int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { String contactId = cur.getString(idColumn); System.out.println("contactId:"+contactId); // 获得联系人姓名 String disPlayName = cur.getString(displayNameColumn); user.setUserName(disPlayName); System.out.println("disPlayName:"+disPlayName); // 查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) { // 获得联系人的电话号码 Cursor phones = resolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phones.moveToFirst()) { do { // 遍历所有的电话号码 int id = phones.getInt(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)); phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } while (phones.moveToNext()); } } System.out.println("phoneNumber:"+phoneNumber); user.setPhoneNumber(phoneNumber); } while (cur.moveToNext()); } return listUser; }}