2017-06-01 14 views
3

は、私の知る限りではブラジルの国コードは55com.google.i18n.phonenumbers Bug?

ですが、コード

mobilePhoneNumber = "+32495665962"; 
      isoCode = "BR"; 

      phoneNumber = phoneNumberUtil.parse(mobilePhoneNumber, isoCode); 
      isValid = phoneNumberUtil.isValidNumber(phoneNumber); 
      phoneNumberType = phoneNumberUtil.getNumberType(phoneNumber); 

      System.out.println ("phoneNumber ----- > " + phoneNumber); 
      System.out.println ("isValid --------- > " + isValid); 
      System.out.println ("phoneNumberType - > " + phoneNumberType); 

のこの作品は、有効なものとして私にその番号を与えます!

phoneNumber ----- > Country Code: 32 National Number: 495665962 
isValid --------- > true 
phoneNumberType - > MOBILE 

答えて

3

Read the Javadoc

defaultRegion - 私たちからする番号を期待している地域。 これは、解析対象の番号が国際フォーマットで書かれていない場合にのみ使用されます。この場合のnumberのcountry_codeは、指定されたデフォルト領域のcountry_codeとして格納されます。番号が '+'で始まり、その後に国の呼び出しコードが続くことが保証されている場合は、「ZZ」またはnullを指定できます。

あなたの入力は国際的な形式なので、このパラメータは使用されません。

なぜあなたはベルギーの電話番号をブラジルの電話番号に変換すると思いますか?

1

libphonenumberisValidNumber(...)は、数字がどこでも有効な場合はtrueを返します。たとえば、あなたが入力しているのは有効なベルギー番号です。私はあなたが間違って使っていると信じています。あなたがやりたいことはisValidNumberForRegion(Phonenumber.PhoneNumber number, String regionCode)を使ってください。

https://javadoc.io/doc/com.googlecode.libphonenumber/libphonenumber/8.5.0