Дефисы - проблема в получении контактных данных с частичным номером телефона

У меня есть функция, чтобы получить все контакты с частью номера телефона, здесь...

Cursor c = getContentResolver().query(Data.CONTENT_URI,
              new String[] {Data._ID, Phone.NUMBER},
              Phone.NUMBER + " like ?",
              new String[] {"%"+String.valueOf(phoneNumber) +"%"}, null);
while (c.moveToNext()) {
    String id = c.getString(0);
    String number = c.getString(1);
    Log.d("id",id);
    Log.d("number",number);
}       

но проблема в том, если я вставлю 31221 Я не могу получить контакты с таким номером телефона, как 312-2131-321Потому что "-" или я, если я вставлю 0558836298 я не могу получить +62558836298 потому что "+" и код страны. Спасибо за помощь

PS я знаю о

Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));

но это работает, только если вы поставите целое число.

1 ответ

Решение

Пожалуйста, попробуйте заменить это:

Phone.NUMBER

с этим:

"replace("+Phone.NUMBER+", '-','')"

Он использует функцию замены из SQLite для удаления гипсов.

Другие вопросы по тегам