中有效在我的應用程序的註冊頁面中,我有一個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