0

Я столкнулся с проблемой при извлечении контакта, используя ContentResolver.Получить контакт Номер как есть из списка контактов

Список контактов показывает контакт с пробелами, но после получения контакта с помощью средства определения содержимого он удаляет все пробелы.

Список контактов: +91 XXXXX XXXXX

После выборки: + 91XXXXXXXXXX (Неправильные удаление пробелов)

Но если это не удаление символа, если число

Список контактов: +1 (XXX) XXX-XXXX

После выборки: +1 (XXX) XXX-XXXX (Правильно, как это)

Ниже кода используется для извлечения Contact

String order = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC"; 
String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}; 
Cursor cursor = getContentResolver().query(
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, 
       null, null, order); 

ответ

1

CommonDataKinds.Phone.NUMBER поле может содержать число в любой формат, не обязательно удобный для пользователя. Чтобы отформатировать номер для отображения пользователю, вы можете использовать пакет libphonenumber от Google, который анализирует номер телефона и позволяет отформатировать его в удобном для пользователя формате или в каноническом формате e164, который полезен для хранения и сравнения.

https://github.com/googlei18n/libphonenumber