我正在使用电话号码进行注册。系统与whatsapp完全相同。
问题从这里开始。这将是一个国际应用程序。你知道每个国家都有不同的电话号码格式。我将存储所有这些数字: 123456789
如果用户已经将国家/地区代码放在号码的头部,则没有问题。但如果他不知道我该怎么办?我怎么知道一个号码有国家代码?如果我知道,那么我可以把地址簿的所有者的国家代码。因为如果一个号码没有国家代码,那么他们就住在同一个国家。
答案 0 :(得分:0)
使用此代码片段并记得添加libphonenumber 8.8.1库:
//Get the International Code
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
PhoneNumberUtil mPhone = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber mNumber;
//Get the phone no
EditText editText = (EditText) findViewById(R.id.usr_phone_no);
//Remove all 0's in the left and non-numeral characters and parse it to an international number format
String userPhoneNumber = Long.valueOf(editText.getText().toString().replaceAll("[^\\d]", "")).toString();
mNumber = mPhone.parse(userPhoneNumber, tm.getSimCountryIso().toUpperCase());
//Transform it the way you will use it (In this case, Long)
Long phoneNumber = Long.valueOf(String.format("%d%d",mNumber.getCountryCode(),mNumber.getNationalNumber()));