public class ContactsTools {
/**
* 获取联系人的名字和电话号码
* @param mContext
* @return
*/
public static List<ContactsUser> getContacts(Context mContext){
ContactsUser user = null;
List<ContactsUser> mList = new ArrayList<ContactsUser>();
int nameIndex=-1;
ContentResolver resolver = mContext.getContentResolver();
Cursor cur=resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null,null);
//得到联系人的总数量
int count = cur.getCount();
mContext.getSharedPreferences(AppConfig.SHAREDPREFERCE, Context.MODE_PRIVATE).edit().putInt(AppConfig.CONTACTSCOUNT, count).commit();
while (cur.moveToNext()) {
user = new ContactsUser();
String name = "";
String number = "";
//得到名字
nameIndex = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
name = cur.getString(nameIndex);
//得到电话号码
String contactId = cur.getString(cur
.getColumnIndex(ContactsContract.Contacts._ID)); // 获取联系人的ID号,在SQLite中的数据库ID
Cursor phone = resolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "
+ contactId, null, null);
while (phone.moveToNext()) {
String strPhoneNumber = phone.getString(
phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // 手机号码字段联系人可能不止一个
//如果电话号码前有带+86的,去掉+86
if(strPhoneNumber.startsWith("+86")){
// Log.i("simple", "带86的="+number.substring(3,number.length()-1));
strPhoneNumber = strPhoneNumber.substring(3);
}
strPhoneNumber = strPhoneNumber.replace(" ", "");
number += strPhoneNumber+"_";
}
if(phone != null){
phone.close();
}
number = number.substring(0,number.length()-1);
String nameAndNumber = name + ":" +number;
user.setName(name);
user.setNumber(number);
mList.add(user);
}
if(cur != null){
cur.close();
}
return mList;
}
/**
* 获得联系人的总数
*/
public static int getContactsCount(Context context){
ContentResolver resolver = context.getContentResolver();
Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
return cursor.getCount();
}
}
Android获取电话薄联系人
最新推荐文章于 2021-05-26 08:19:17 发布