String contactId ; private List<PeopleInfo> getContactsInfo(){ List<PeopleInfo> list = new ArrayList<PeopleInfo>(); //得到ContentResolver对象 ContentResolver cr = getContentResolver(); //取得电话本中开始一项的光标 Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); PeopleInfo peopleInfo ; //向下移动光标 while(cursor.moveToNext()) { //取得联系人名字 int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String contact = cursor.getString(nameFieldColumnIndex); peopleInfo = new PeopleInfo(); //取得电话号码 contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + "=" + contactId, null, null); while(phone.moveToNext()) { String PhoneNumber = phone.getString(phone.getColumnIndex(Phone.NUMBER)); phoneString += ( PhoneNumber + "\n"); peopleInfo.setPhone(phoneString); } phone.close(); //获取联系人email Cursor emails = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, null, null); while (emails.moveToNext()) { String email = emails.getString(emails.getColumnIndex(Email.DATA)); Log.d("test", email + "| " ); contact = contact+ "\n" + email; } peopleInfo.setName(contact); emails.close(); phoneString = "" ; list.add(peopleInfo); } cursor.close(); return list ; }
获得联系人信息2、
private void getContacts(){ //得到ContentResolver对象 ContentResolver cr = getContentResolver(); //取得电话本中开始一项的光标 Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); PeopleInfo peopleInfo ; //向下移动光标 while(cursor.moveToNext()) { //取得联系人名字 int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String contact = cursor.getString(nameFieldColumnIndex); peopleInfo = new PeopleInfo(); peopleInfo.setName(contact); //取得电话号码 String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null); while(phone.moveToNext()) { String PhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); phoneString += ( PhoneNumber + "\n"); peopleInfo.setPhone(phoneString); } phoneString = "" ; list.add(peopleInfo); } cursor.close(); }
获得联系人 3 、
public List<PeopleInfo> getContact( ) { List<PeopleInfo> list = new ArrayList<PeopleInfo>(); //得到ContentResolver对象 ContentResolver cr = getContentResolver(); // 获得所有的联系人 Cursor cur = cr.query( ContactsContract.Contacts.CONTENT_URI, null, null , null, null); // 循环遍历 if (cur!=null&&cur.moveToFirst()) { int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { PeopleInfo peopleInfo = new PeopleInfo(); // 获得联系人的ID号 String contactId = cur.getString(idColumn); // 获得联系人姓名 String disPlayName = cur.getString(displayNameColumn); peopleInfo.setName(disPlayName); // 查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cur.getInt(cur .getColumnIndex(ContactsContract.Contacts._ID)); if (phoneCount > 0) { // 获得联系人的电话号码 Cursor phones = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phones!=null&&phones.moveToFirst()) { do { // 遍历所有的电话号码 String phoneNumber = phones.getString(phones .getColumnIndex(String.valueOf(ContactsContract.CommonDataKinds.Phone.NUMBER))); phoneString += ( phoneNumber + "\n"); peopleInfo.setPhone(phoneString); } while (phones.moveToNext()); phoneString = "" ; } phones.close(); } list.add(peopleInfo); } while (cur.moveToNext()); cur.close(); } return list; }