获得联系人姓名和电话 有两种使用可能,一种是以姓名为主 不管电话 邮箱是不是为空 都要显示姓名,第二种就是我要显示的姓名 必须存在电话。 这两种方式其实查不错 关键在于在哪里添加数组。// //获取联系人的姓名、电话信息 此方法以获取显示联系人为主如果电话为空 联系人一样显示
// public ArrayList<InvitePeopleConnect> getContact()
// {
// //取得ContentResolver
// ContentResolver content = getContentResolver();
// Uri uri = ContactsContract.Contacts.CONTENT_URI; //联系人的URI
// Cursor cursor = content.query(uri,null, null, null, null);
// int contactCount = cursor.getCount(); //获得联系人数目
//
// ArrayList<InvitePeopleConnect> contacts = new ArrayList<InvitePeopleConnect>(contactCount);
//
// if (cursor.moveToFirst())
// {
// // 循环遍历
// for (;!cursor.isAfterLast();cursor.moveToNext())
// {
// ArrayList<String> allPhoneNum = new ArrayList<String>();
// InvitePeopleConnect contact = new InvitePeopleConnect();
//
// int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
// int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
// int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
//
// // 获得联系人的ID号
// String contactId = cursor.getString(idColumn);
// // contact.setMobleNum(contactId);
// // 获得联系人姓名
// String disPlayName = cursor.getString(displayNameColumn);
// contact.setPeopleName(disPlayName);
//
// // 电话号码的个数
// //String phoneString = cursor.getString(phoneColumn);
// int phoneNum = cursor.getInt(phoneColumn);
//
// if (phoneNum > 0)
// {
// // 获得联系人的电话号码的cursor;
// Cursor phones = content.query(
// ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
// null,
// ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId,
// null, null);
//
// int phoneCount = phones.getCount();
// allPhoneNum = new ArrayList<String>(phoneCount);
// if (phones.moveToFirst())
// {
// // 遍历所有的电话号码
// for (;!phones.isAfterLast();phones.moveToNext())
// {
// String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// allPhoneNum.add(phoneNumber);
//
// }
//
// if (!phones.isClosed())
// {
// phones.close();
// }
// }
// }
//
// contact.setPoneNumList(allPhoneNum);
//
// contacts.add(contact);
// }
//
// if (!cursor.isClosed())
// {
// cursor.close();
// }
// }
// return contacts;
//
// }
//获取联系人的姓名、电话信息 此方法以获取显示联系人为主如果电话为空 联系人一样显示
public ArrayList<InvitePeopleConnect> getContact()
{
//取得ContentResolver
ContentResolver content = getContentResolver();
Uri uri = ContactsContract.Contacts.CONTENT_URI; //联系人的URI
Cursor cursor = content.query(uri,null, null, null, null);
ArrayList<InvitePeopleConnect> contacts = new ArrayList<InvitePeopleConnect>();
if (cursor.moveToFirst())
{
// 循环遍历
for (;!cursor.isAfterLast();cursor.moveToNext())
{
ArrayList<String> allPhoneNum = new ArrayList<String>();
InvitePeopleConnect contact = new InvitePeopleConnect();
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
int phoneColumn = cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
// 获得联系人的ID号
String contactId = cursor.getString(idColumn);
// 获得联系人姓名
String disPlayName = cursor.getString(displayNameColumn);
// 电话号码的个数
//String phoneString = cursor.getString(phoneColumn);
int phoneNum = cursor.getInt(phoneColumn);
if (phoneNum > 0)
{
// 获得联系人的电话号码的cursor;
Cursor phones = content.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId,
null, null);
int phoneCount = phones.getCount();
allPhoneNum = new ArrayList<String>(phoneCount);
if (phones.moveToFirst())
{
// 遍历所有的电话号码
for (;!phones.isAfterLast();phones.moveToNext())
{
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if( !phoneNumber.equals("") && phoneNumber!=null)
{
allPhoneNum.add(phoneNumber);
contact.setPeopleName(disPlayName);
}
}
contact.setPoneNumList(allPhoneNum);
contacts.add(contact);
if (!phones.isClosed())
{
phones.close();
}
}
}
}
if (!cursor.isClosed())
{
cursor.close();
}
}
return contacts;
}
//获取联系人的姓名、邮箱信息
public ArrayList<InvitePeopleConnect> getEmailContact()
{
//取得ContentResolver
ContentResolver content = getContentResolver();
Uri uri = ContactsContract.Contacts.CONTENT_URI; //联系人的URI
Cursor cursor = content.query(uri,null, null, null, null);
ArrayList<InvitePeopleConnect> contacts = new ArrayList<InvitePeopleConnect>();
if (cursor.moveToFirst())
{
// 循环遍历
for (;!cursor.isAfterLast();cursor.moveToNext())
{
ArrayList<String> allEmailNum = new ArrayList<String>();
InvitePeopleConnect contact = new InvitePeopleConnect();
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
// 获得联系人的ID号
String contactId = cursor.getString(idColumn);
// 获得联系人姓名
String disPlayName = cursor.getString(displayNameColumn);
Cursor emails = content.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID+ " = " + contactId,
null, null);
allEmailNum = new ArrayList<String>();
if (emails.moveToFirst())
{
// 遍历所有的邮箱
for (;!emails.isAfterLast();emails.moveToNext())
{
String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
if( !emailAddress.equals("") && emailAddress!=null)
{
allEmailNum.add(emailAddress);
contact.setPeopleName(disPlayName);
}
}
contact.setPoneNumList(allEmailNum);
contacts.add(contact);
if (!emails.isClosed())
{
emails.close();
}
}
}
if (!cursor.isClosed())
{
cursor.close();
}
}
return contacts;
}