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

Ответ 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;
}

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

Через несколько недель появится больше обновлений.