Я хочу реализовать поиск контактов на основе предоставленного номера.
Я использовал ContactsContract для чтения всех контактов. Я внедрил критерии поиска на основе имени, доказав, что searchView и соответствующее имя будет отображаться, но я хочу сделать то же самое и по номеру
private List<ContactItem> getContacts(String s) {
String whereString = "display_name LIKE ?";
String[] whereParams = new String[]{ "%" + s + "%"};
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, whereString, whereParams, null);
List<ContactItem> contacts = new ArrayList<>();
assert cur != null;
while (cur.moveToNext()) {
String name = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contacts.add(new ContactItem(name,phoneNumber));
}
cur.close();
return contacts;
}
Я хочу использовать здесь номер телефона вместо display_name. Как это сделать
ContactsContract.CommonDataKinds.Phone#CONTENT_FILTER_URI
- URL в стиле content:// для поиска телефона с использованием фильтра. Фильтр возвращает записи MIME-типа CONTENT_ITEM_TYPE. Фильтр применяется к отображаемым именам, а также номерам телефонов. Аргумент фильтра должен быть передан как дополнительный сегмент пути после этого URI. - person pskink   schedule 20.01.2019