14

libphonenumber在 Android 上不起作用,异常显示:“原因:java.lang.UnsupportedOperationException:不支持 CANON_EQ 标志”

网页中的描述说该库是用于“智能手机”但 Android 不支持 CANON_EQ reg_ex 标志..

我错过了什么吗?

4

8 回答 8

27

如果您使用的是 Android Studio,请使用

implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32'

如果要下载最新的 JAR 文件,请转到

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

于 2015-11-07T17:00:27.363 回答
9

嗨,请使用此功能传递电话号码和国家代码,如印度 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;
}
于 2014-08-07T07:30:04.973 回答
6

请尝试使用下载页面中的 libphonenumber-2.5.1.jar:

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

Right-Number 项目中的 jar 可以正常工作,因为它们使用的是 libphonenumber-2.4.jar。CANON_EQ 标志是在 v2.5 中引入的,但现在已从 2.5.1 中删除以与 Android 兼容,直到它支持该标志为止。

于 2011-01-28T08:51:56.917 回答
2

编译'com.googlecode.libphonenumber:libphonenumber:7.1.1'

在你的 gradle 中使用这个依赖。

检查这个https://github.com/googlei18n/libphonenumber

于 2016-09-23T07:15:47.150 回答
1

在以下位置提交问题:

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

我在最新版本中遇到了类似的问题,他们很快就回答了我的问题。这绝对只是一个已经浮出水面的错误,如果你想修复它,你应该报告它。他们花了 10 分钟来确认我的问题,15 分钟后他们说他们已经准备好了补丁。

Right-Number 的 jar 只是一个较旧的版本。

于 2011-01-28T07:58:00.640 回答
1

新版本的 libphonenumber http://code.google.com/p/libphonenumber/ 是为 Java 1.5 编译的,现在可以在较旧的 android 系统上运行。

以前的版本是为 Java 1.6 编译的,但您可以使用提供的源代码为任何版本重新编译。

于 2011-02-11T15:54:33.387 回答
1

我自己也遇到过完全相同的问题,并且能够通过使用以下版本来解决它:

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

此版本来自Right-Number 项目,该项目旨在构建一个用于处理 Android 上的电话号码格式的用户界面。

我在我的项目中使用过它,它工作正常。

于 2011-01-27T16:10:16.343 回答
1

在安卓上:

implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.31'
于 2021-09-01T08:49:00.470 回答