Использование LibPhoneNumber Google lib в Android
библиотека libphonenumber не работает на Android и исключение говорит: "Вызвано: java.ленг.UnsupportedOperationException: флаг CANON_EQ не поддерживается"
описание на веб-странице говорит, что lib предназначен для "смартфонов", но Android не поддерживает флаг CANON_EQ reg_ex..
Я что-то пропустила?
8 ответов
попробуйте использовать libphonenumber-2.5.1.jar со страницы загрузки:
http://code.google.com/p/libphonenumber/downloads/list
jar из проекта Right-Number работает, потому что они используют libphonenumber-2.4.сосуд. Флаг CANON_EQ был представлен в версии v2.5, но теперь удаляется из 2.5.1, чтобы быть совместимым с Android, пока он не поддерживает флаг.
Если вы используете Android studio использовать
compile 'com.googlecode.libphonenumber:libphonenumber:8.4.2'
Если вы хотите загрузить последний файл JAR goto
http://mvnrepository.com/artifact/com.googlecode.libphonenumber/libphonenumber
привет, пожалуйста, используйте эту функцию, чтобы передать номер телефона и код страны, как Индия 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;
}
compile ' com.googlecode.libphonenumber: libphonenumber: 7.1.1'
используйте эту зависимость в gradle.
проверьте это https://github.com/googlei18n/libphonenumber
Я сам боролся с тем же самым вопросом и смог решить его, используя следующую версию:
http://code.google.com/p/right-number/source/browse/trunk/RightNumber/libs/libphonenumber.jar
эта версия из правый номер проекта это направлено на создание пользовательского интерфейса для работы с форматированием номера телефона на Android.
Я использовал его в своем проекте, и он отлично работает.
отправить вопрос по адресу:
http://code.google.com/p/libphonenumber/issues/list
У меня была аналогичная проблема с новейшей редакцией, и они были очень быстрыми с ответом на мою проблему. Это определенно просто ошибка, которая всплыла, и вы должны сообщить об этом, если хотите ее исправить. Потребовалось 10 минут, чтобы признать мою проблему, и 15 минут после этого они сказали, что у них есть патч, готовый к этому.
банка справа-номер просто старше пересмотр.
новая версия libphonenumber http://code.google.com/p/libphonenumber/ скомпилирован для Java 1.5 и теперь будет работать на старых системах android.
предыдущие версии были скомпилированы для Java 1.6, но вы могли бы повторно скомпилировать для любой версии, используя предоставленный исходный код.
временно попробуйте версию 2.5.1 в http://code.google.com/p/libphonenumber/downloads поскольку он содержит гораздо более новые метаданные.
через несколько недель будет больше обновлений.