0

My task is to find data on the first entered telephone number. Do so but fails due to the different format in the database.

Maybe there's another way or how to do the query in one format

private DataContact getDataContact1(String numberPhone) {
        DataContact dataContact = new DataContact();
        Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        if (cursor == null) {
            return dataContact;
        }
        countContact = cursor.getCount();
        while (cursor.moveToNext()) {
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

            //numbers
            Cursor phones = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId + " AND " +
                            ContactsContract.CommonDataKinds.Phone.TYPE + " = " + ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE + " AND " +
                            ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '" + numberPhone + "%'", null, null);
            if (phones == null) {
                continue;
            }
            if (phones.moveToNext()) {
                String number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                dataContact.setNumberFormat(number);
                dataContact.setNumber(FormatConstants.replaceOnlyNumbers(number));
                dataContact.setName(name);
                return dataContact;
            }
            phones.close();
        }
        cursor.close();
        return dataContact;
    }
Gennadii Ianchev
  • 129
  • 1
  • 2
  • 11

0 Answers0