For example, the following (invalid) AU mobile phone number is considered valid by libphonenumber ++++++614- -12a345678(())&
:
Code wise:
final String mobilePhoneNumber = "++++++614- -12a345678(())&";
final String region = "AU";
final PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
// true
// I don't get it, how come ++++++614- -12a345678(())& is even considered a possible number??
System.out.println(phoneNumberUtil.isPossibleNumber(mobilePhoneNumber, region));
final Phonenumber.PhoneNumber phoneNumber = phoneNumberUtil.parse(mobilePhoneNumber, region);
// true
final boolean validNumberForRegion = phoneNumberUtil.isValidNumberForRegion(phoneNumber, region);
// true
final boolean validMobileNumber = phoneNumberUtil.getNumberType(phoneNumber).equals(PhoneNumberType.MOBILE);
Tested on the libphonenumber v8.9.2:
compile group: 'com.googlecode.libphonenumber', name: 'libphonenumber', version: '8.9.2'