Использование LibPhoneNumber google lib в Android
Библиотека libphonenumber не работает на Android, и исключение говорит:
"Вызывается: java.lang.UnsupportedOperationException: флаг CANON_EQ не поддерживается"
Описание на веб-странице говорит, что lib предназначен для "смартфонов", но Android не поддерживает флаг CANON_EQ reg_ex.
Я что-то пропустил?
Ответы
Ответ 1
Попробуйте использовать libphonenumber-2.5.1.jar со страницы загрузки:
http://code.google.com/p/libphonenumber/downloads/list
Банку из проекта "Правый номер" работает, потому что они используют libphonenumber-2.4.jar. Флаг CANON_EQ был представлен в версии 2.5, но теперь он удален из 2.5.1, чтобы быть совместимым с Android до тех пор, пока он не поддержит флаг.
Ответ 2
Если вы используете Android-студию, используйте
compile 'com.googlecode.libphonenumber:libphonenumber:8.4.2'
Если вы хотите загрузить последний JAR файл goto
http://mvnrepository.com/artifact/com.googlecode.libphonenumber/libphonenumber
Ответ 3
Привет Пожалуйста, используйте эту функцию для передачи номера телефона и кода страны, например, india 91
public static String parseContact(String contact, String countrycode) {
PhoneNumber phoneNumber = null;
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
String finalNumber = null;
String isoCode = phoneNumberUtil.getRegionCodeForCountryCode(Integer.parseInt(countrycode));
boolean isValid = false;
PhoneNumberType isMobile = null;
try {
phoneNumber = phoneNumberUtil.parse(contact, isoCode);
isValid = phoneNumberUtil.isValidNumber(phoneNumber);
isMobile = phoneNumberUtil.getNumberType(phoneNumber);
} catch (NumberParseException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
}
if (isValid
&& (PhoneNumberType.MOBILE == isMobile || PhoneNumberType.FIXED_LINE_OR_MOBILE == isMobile)) {
finalNumber = phoneNumberUtil.format(phoneNumber,
PhoneNumberFormat.E164).substring(1);
}
return finalNumber;
}
Ответ 4
compile 'com.googlecode.libphonenumber: libphonenumber: 7.1.1'
Используйте эту зависимость в себе gradle.
проверьте https://github.com/googlei18n/libphonenumber
Ответ 5
Я сам боролся с одним и тем же вопросом и смог решить эту проблему, используя следующую версию:
http://code.google.com/p/right-number/source/browse/trunk/RightNumber/libs/libphonenumber.jar
Эта версия представляет собой проект Right-Number, целью которого является создание пользовательского интерфейса для обработки форматирования телефонных номеров на Android.
Я использовал его в своем проекте, и он отлично работает.
Ответ 6
Отправить вопрос по адресу:
http://code.google.com/p/libphonenumber/issues/list
У меня была аналогичная проблема с новейшей версией, и они очень быстро ответили на мою проблему. Это определенно просто ошибка, которая всплыла, и вы должны сообщить об этом, если хотите, чтобы она была исправлена. Приняли их 10 минут, чтобы подтвердить мою проблему, и через 15 минут после этого они сказали, что у них есть патч, готовый к этому.
Флажок в Right-Number - это только старая версия.
Ответ 7
Новая версия libphonenumber http://code.google.com/p/libphonenumber/ скомпилирована для Java 1.5 и теперь будет работать на старых системах Android.
Предыдущие версии были скомпилированы для Java 1.6, но вы могли бы скомпилировать их для любой версии, используя поставляемый исходный код.
Ответ 8
Временно попробуйте версию 2.5.1 в http://code.google.com/p/libphonenumber/downloads, поскольку она содержит гораздо более новые метаданные.
Через несколько недель появится больше обновлений.