ContactsContract.CommonDataKinds.Phone.NUMBER не работает должным образом - PullRequest
0 голосов
/ 22 апреля 2020

Я искал очень быстрый способ загрузки контактов в моем приложении android. Я наткнулся на этот ответ , и это сработало! Мои контакты загружаются очень быстро.

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

private static final String[] PROJECTION = new String[] {
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
        ContactsContract.Contacts.DISPLAY_NAME,
        ContactsContract.CommonDataKinds.Phone.NUMBER
};

Очевидно, ContactsContract.CommonDataKinds.Phone.NUMBER возвращает номер телефона. ,

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что в этом поле можно найти только номера телефонов с кодами стран. Следовательно, он может легко обнаруживать + 2347000000000 , но не 07000000000 . Я хочу иметь возможность определять номера телефонов без кодов стран.

Что мне делать?

1 Ответ

0 голосов
/ 22 апреля 2020

Вы можете использовать библиотеку Google libphonenumber для добавления / удаления кодов стран на телефоны, см. Здесь: https://github.com/google/libphonenumber (ознакомьтесь с файлом об использовании в Android)

здесь соответствующий фрагмент кода для вашего варианта использования:

There are a few formats supported by the formatting method, as illustrated below:

// Produces "+41 44 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.INTERNATIONAL));
// Produces "044 668 18 00"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.NATIONAL));
// Produces "+41446681800"
System.out.println(phoneUtil.format(swissNumberProto, PhoneNumberFormat.E164));
You could also choose to format the number in the way it is dialed from another country:

// Produces "011 41 44 668 1800", the number when it is dialed in the United States.
System.out.println(phoneUtil.formatOutOfCountryCallingNumber(swissNumberProto, "US"));```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...