package cn.wildfire.chat.kit.contact; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.provider.ContactsContract; import android.text.TextUtils; import cn.wildfire.chat.kit.contact.model.PhoneDto; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author kimi * @description * @date 2021-01-04 23:02 */ public class PhoneUtil { // 号码 public final static String NUM = ContactsContract.CommonDataKinds.Phone.NUMBER; // 联系人姓名 public final static String NAME = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME; //上下文对象 private Context context; //联系人提供者的uri private Uri phoneUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; public PhoneUtil(Context context) { this.context = context; } //获取所有联系人 public List getPhone() { List phoneDtos = new ArrayList<>(); ContentResolver cr = context.getContentResolver(); Cursor cursor = cr.query(phoneUri, new String[]{NUM, NAME}, null, null, null); while (cursor.moveToNext()) { String phone = cursor.getString(cursor.getColumnIndex(NUM)); phone = replaceAllBlank(phone); PhoneDto phoneDto = new PhoneDto(cursor.getString(cursor.getColumnIndex(NAME)), phone); phoneDtos.add(phoneDto); } return phoneDtos; } public static String replaceAllBlank(String str) { if (TextUtils.isEmpty(str)) { return str; } Pattern p = Pattern.compile("\\s*|\t|\r|\n"); Matcher m = p.matcher(str); return m.replaceAll(""); } }