2011-01-27 3 views
11

Библиотека libphonenumber не работает на Android и исключение говорит: «Вызванный: java.lang.UnsupportedOperationException: флаг CANON_EQ не поддерживается»Использование LibPhoneNumber Google LIB в Android

Описание на странице гласит, что lib предназначен для «смартфонов», но Android не поддерживает флаг CANON_EQ reg_ex.

Я что-то упустил?

ответ

6

Пожалуйста, попробуйте использовать 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 до тех пор, пока он не поддержит флаг.

+0

Благодарим за сообщение! – shaimagz

1

Я боролся с точно таким же вопросом сам, и был в состоянии решить эту проблему с помощью следующей версии:

http://code.google.com/p/right-number/source/browse/trunk/RightNumber/libs/libphonenumber.jar

Этой версия от Right-Number project который направлен на создание пользовательского интерфейса для касающиеся форматирования телефонных номеров на Android.

Я использовал его в своем проекте, и он отлично работает.

1

Отправить вопрос по адресу:

http://code.google.com/p/libphonenumber/issues/list

У меня была аналогичная проблема с последней ревизии, и они были очень быстро с ответом на мой вопрос. Это определенно просто ошибка, которая всплыла, и вы должны сообщить об этом, если хотите, чтобы она была исправлена. Приняли их 10 минут, чтобы подтвердить мою проблему, и через 15 минут после этого они сказали, что у них есть патч, готовый к этому.

Банковская шкала с правым номером - это более старая версия.

0

Временно попробуйте версию 2.5.1 на http://code.google.com/p/libphonenumber/downloads, так как она содержит намного более новые метаданные.

В течение нескольких недель будет доступно больше обновлений.

1

Новая версия libphonenumber http://code.google.com/p/libphonenumber/ скомпилирована для Java 1.5 и теперь будет работать на более старых системах Android.

Предыдущие версии были скомпилированы для Java 1.6, но вы могли бы скомпилировать их для любой версии, используя поставляемый исходный код.

3

Привет Пожалуйста, используйте эту функцию, чтобы передать номер телефона и код страны, как Индия 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; 
} 
17

Если вы используете использовать Android студии

compile 'com.googlecode.libphonenumber:libphonenumber:8.4.2'

Если вы хотите, чтобы загрузить последнюю версию файла JAR goto

http://mvnrepository.com/artifact/com.googlecode.libphonenumber/libphonenumber

+1

7000 методов, это так тяжело%) –

+1

Да и эта библиотека слишком глючит. Мой клиент получил разочарование и отбросил эту библиотеку. –

+1

стоит изменить, чтобы добавить, где находится последняя версия. Я думаю, что сейчас это 8.4.2. –

2

compile 'com.googlecode.libphonenumber: libphonenumber: 7.1.1'

Используйте эту зависимость в градиенте.

проверить это https://github.com/googlei18n/libphonenumber

+0

Работал! Я попробовал загрузить последнюю банку из своего репо (libphonenumber-7.7.2), и он продолжал бросать исключение во время выполнения. С этой старой версией и с импортом через gradle это работает !!!! – user2924714

Смежные вопросы