2011-01-27 5 views
11

La biblioteca libphonenumber non funziona su Android e l'eccezione dice: "causato da: java.lang.UnsupportedOperationException: non supportato CANON_EQ flag"Utilizzando LibPhoneNumber google lib in Android

La descrizione nella pagina web afferma che la lib è per "Smartphone" ma Android non supporta il flag reg_ex di CANON_EQ ..

Mi manca qualcosa?

risposta

6

Si prega di provare a utilizzare libphonenumber-2.5.1.jar dalla pagina di download:

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

Il vaso dal progetto destro del numero funziona perché usano libphonenumber-2.4.jar. Il flag CANON_EQ è stato introdotto nella versione 2.5, ma ora è stato rimosso dalla versione 2.5.1 per essere compatibile con Android fino a quando non supporta il flag.

+0

Grazie per aver effettuato l'aggiornamento! – shaimagz

1

Invia un problema a:

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

ho avuto un problema simile con l'ultima revisione e sono stati molto veloci con segreteria mio problema. È sicuramente solo un bug che è emerso e dovresti segnalarlo se lo vuoi corretto. Ci sono voluti 10 minuti per riconoscere il mio problema e 15 minuti dopo hanno detto che avevano una patch pronta per questo.

Il barattolo al numero di destra è solo una revisione precedente.

1

La nuova versione di libphonenumber http://code.google.com/p/libphonenumber/ è compilata per Java 1.5 e ora funzionerà su vecchi sistemi Android.

Le versioni precedenti sono state compilate per Java 1.6, ma è possibile che siano state ricompilate per qualsiasi versione utilizzando il codice sorgente fornito.

3

Ciao Si prega di utilizzare questa funzione per passare il numero di telefono e il codice paese come l'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; 
} 
17

Se la vostra utilizzando l'utilizzo in studio Android

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

Se volete scaricare il file JAR ultima goto

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

+1

7000 metodi, è così pesante%) –

+1

Sì e anche questa libreria è troppo bacata. Il mio cliente si è frustrato e ha abbandonato questa modifica del valore di –

+1

per aggiungere l'ultima versione penso che sia la 8.4.2 ora –

2

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

Utilizzare questa dipendenza nel gradle.

controllare questo https://github.com/googlei18n/libphonenumber

+0

Ha funzionato! Ho provato a scaricare l'ultimo jar dal repository (libphonenumber-7.7.2) e ha continuato a generare eccezioni in runtime. Con questa versione precedente e con importazione tramite gradle funziona !!!! – user2924714

Problemi correlati