2011-01-27 7 views
11

Thư viện libphonenumber không hoạt động trên Android và các ngoại lệ nói: "Nguyên nhân: java.lang.UnsupportedOperationException: CANON_EQ cờ không được hỗ trợ"Sử dụng LibPhoneNumber google lib trong Android

Các mô tả trong trang web nói rằng lib là dành cho "Điện thoại thông minh" nhưng Android không hỗ trợ cờ CANON_EQ reg_ex ..

Tôi có thiếu gì đó không?

Trả lời

6

hãy thử sử dụng libphonenumber-2.5.1.jar từ trang tải:

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

Các jar từ dự án phải Số việc vì họ đang sử dụng libphonenumber-2.4.jar. Cờ CANON_EQ đã được giới thiệu trong phiên bản v2.5, nhưng hiện đã bị loại bỏ khỏi 2.5.1 để tương thích với Android cho đến khi nó hỗ trợ cờ.

+0

Cảm ơn bạn đã cập nhật! – shaimagz

1

Tôi đã vật lộn với cùng một câu hỏi chính xác bản thân mình, và đã có thể giải quyết nó bằng cách sử dụng các phiên bản sau:

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

Phiên bản này là từ Right-Number project nhằm xây dựng một giao diện người dùng cho xử lý định dạng số điện thoại trên Android.

Tôi đã sử dụng nó trong dự án của mình và nó hoạt động tốt.

1

Gửi một vấn đề tại địa chỉ:

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

Tôi đã có một vấn đề tương tự với các phiên bản mới nhất và họ rất nhanh với việc trả lời vấn đề của tôi. Nó chắc chắn chỉ là một lỗi mà đã nổi lên và bạn nên báo cáo nó nếu bạn muốn nó cố định. Mất 10 phút để xác nhận vấn đề của tôi và 15 phút sau đó họ nói rằng họ đã có một bản vá sẵn sàng cho nó.

Bình ở số bên phải chỉ là bản sửa đổi cũ hơn.

1

Phiên bản mới của libphonenumber http://code.google.com/p/libphonenumber/ được biên dịch cho Java 1.5 và giờ đây sẽ hoạt động trên các hệ thống Android cũ hơn.

Phiên bản trước được biên dịch cho Java 1.6, nhưng bạn có thể đã biên dịch lại cho bất kỳ phiên bản nào bằng cách sử dụng mã nguồn được cung cấp.

3

Hi Vui lòng sử dụng chức năng này để vượt qua số điện thoại và mã quốc gia như Ấn Độ 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

Nếu bạn sử dụng sử dụng Android studio

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

Nếu bạn muốn tải về các tập tin JAR mới nhất goto

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

+1

7000 phương pháp, nó quá nặng%) –

+1

Có và thư viện này cũng quá lỗi. Khách hàng của tôi đã thất vọng và bỏ qua lib này .. –

+1

giá trị chỉnh sửa để thêm phiên bản mới nhất ở đâu là 8.4.2 bây giờ –

2

biên dịch 'com.googlecode.libphonenumber: libphonenumber: 7.1.1'

Sử dụng sự phụ thuộc này khi bạn tốt nghiệp.

kiểm tra điều này https://github.com/googlei18n/libphonenumber

+0

Đã hoạt động! Tôi đã thử tải về các jar mới nhất từ ​​repo của họ (libphonenumber-7.7.2) và nó giữ ném ngoại lệ trong thời gian chạy. Với phiên bản cũ hơn này và với việc nhập thông qua gradle nó hoạt động !!!! – user2924714