Дефисы - проблема в получении контактных данных с частичным номером телефона
У меня есть функция, чтобы получить все контакты с частью номера телефона, здесь...
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 для удаления гипсов.