/**
* 同步返回联系人列表
*/
public static List<ContactsInfo> getContactsList(Context context) {
//检查权限
if (Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {
return new ArrayList<>();
}
}
final ContentResolver contentResolver = context.getContentResolver();
Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, new String[]{"_id"}, null, null, null);
List<ContactsInfo> contactsInfos = new ArrayList<>();
if (cursor != null) {
//枚举所有联系人的id
if (cursor.getCount() > 0) {
L.w("联系人总数量:" + cursor.getCount()); //就是联系人的总数
int count = 0;
if (cursor.moveToFirst()) {
do {
int contactIdIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID);//获取 id 所在列的索引
String contactId = cursor.getString(contactIdIndex);//联系人id
final List<String> phones = getData1(contentResolver, contactId, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
if (phones.isEmpty()) {
continue;
} else {
String name;
final List<String> names = getData1(contentResolver, contactId, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
if (names.isEmpty()) {
name = phones.get(0);
} else {
name = names.get(0);
}
//相同联系人的不同手机号码视为不同的联系人
for (String phone : phones) {
// 去除非手机号
if (!RegexUtils.isMobileExact(StringUtil.removeBlanks(phone))) {
continue;
}
ContactsInfo io = new ContactsInfo();
io.contactId = contactId;
io.name = name;
io.phone = StringUtil.removeBlanks(phone);
io.letter = String.valueOf(Pinyin.toPinyin(name.charAt(0)).toUpperCase().charAt(0));
contactsInfos.add(io);
}
}
// L.e("-------------------------" + count + "----------------------");
// L.w("联系人ID:" + contactId);
// final String name = getData1(contentResolver, contactId, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
// L.w("联系人名称:" + Pinyin.toPinyin(name.charAt(0)).toUpperCase().charAt(0) + " " + name);
// L.w("联系人电话:" + getData1(contentResolver, contactId, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE));
// logData(contentResolver, contactId);
// count++;
} while (cursor.moveToNext());
}
}
cursor.close();
}
return contactsInfos;
}
ContactsPickerHelper.java 文件源码
java
阅读 31
收藏 0
点赞 0
评论 0
项目:RLibrary
作者:
评论列表
文章目录