中有效在我的应用程序的注册页面中,我有一个OTP检查。如何检查电话号码是否在android
我的问题是我想在发送OTP之前验证电话号码。
如何可以根据扩展我创建电话号码验证的正则表达式(阿曼+968,加拿大+1)
我已经试过PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber的); api验证电话号码。但是api总是返回true。例如:我已经将“0”传递给api,但它返回true。
有没有更好的选择来验证电话号码与国家扩展代码。
中有效在我的应用程序的注册页面中,我有一个OTP检查。如何检查电话号码是否在android
我的问题是我想在发送OTP之前验证电话号码。
如何可以根据扩展我创建电话号码验证的正则表达式(阿曼+968,加拿大+1)
我已经试过PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber的); api验证电话号码。但是api总是返回true。例如:我已经将“0”传递给api,但它返回true。
有没有更好的选择来验证电话号码与国家扩展代码。
PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber)是不正确的方式来检查电话号码是否有效。我找到了一个更好的解决方案,它为我工作。
首先我们需要在gradle文件中添加下面的库。
库:com.googlecode.libphonenumber:libphonenumber:8.4.2
我们需要通过手机号码和国家代码的下方功能,如果电话号码是有效的,它将返回true。
public static PhoneValidateResponse isPhoneNumberValidate(String mobNumber, String countryCode) {
PhoneValidateResponse phoneNumberValidate = new PhoneValidateResponse();
PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber phoneNumber = null;
boolean finalNumber = false;
PhoneNumberUtil.PhoneNumberType isMobile = null;
boolean isValid = false;
try {
String isoCode = phoneNumberUtil.getRegionCodeForCountryCode(Integer.parseInt(countryCode));
phoneNumber = phoneNumberUtil.parse(mobNumber, isoCode);
isValid = phoneNumberUtil.isValidNumber(phoneNumber);
isMobile = phoneNumberUtil.getNumberType(phoneNumber);
phoneNumberValidate.setCode(String.valueOf(phoneNumber.getCountryCode()));
phoneNumberValidate.setPhone(String.valueOf(phoneNumber.getNationalNumber()));
phoneNumberValidate.setValid(false);
} catch (NumberParseException e) {
e.printStackTrace();
} catch (NullPointerException e) {
e.printStackTrace();
} catch (NumberFormatException e) {
e.printStackTrace();
}
if (isValid && (PhoneNumberUtil.PhoneNumberType.MOBILE == isMobile ||
PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE == isMobile)) {
finalNumber = true;
phoneNumberValidate.setValid(true);
}
return phoneNumberValidate;
}
模型类PhoneValidateResponse。
public class PhoneValidateResponse {
private String Phone;
private String Code;
private boolean isValid;
public String getPhone() {
return Phone;
}
public void setPhone(String phone) {
Phone = phone;
}
public String getCode() {
return Code;
}
public void setCode(String code) {
Code = code;
}
public boolean isValid() {
return isValid;
}
public void setValid(boolean valid) {
isValid = valid;
}
}
按我的方法PhoneValidateResponse的代码,如果isValid()的返回true,则给定的电话号码和国家代码相匹配。
使用'PhoneNumberUtils.isGlobalPhoneNumber(phoneNumber);' –
我建议你展示一些研究工作和你试图达到你所要求的内容 – djdere
https://developer.android.com/reference/android/telephony/PhoneNumberUtils .html – shash678