获取没有国家/地区前缀

时间:2017-11-23 08:16:27

标签: android phone-number telephonymanager

要在我们的应用程序中预先填写电话号码字段,我们要使用SIM存储的电话号码(如果可用)。为此,我们使用了in this popular question/answer概述的通用解决方案:

TelephonyManager tMgr = (TelephonyManager) mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();

然而,问题是这个字符串还包含国际拨号前缀,即如下所示:

'+[prefix][phoneNumber]'

由于prefix变化between 1 and 3 digits,我们无法简单地修剪它......

- > 有没有办法从SIM 获取电话号码而不用国家/地区拨号前缀?

1 个答案:

答案 0 :(得分:1)

您可以使用libphonenumber-android获取数字,如下所示:

PhoneNumberUtil util = PhoneNumberUtil.createInstance(getApplicationContext());

try {
  // Indonesia phone number
  final Phonenumber.PhoneNumber phoneNumber = util.parse("+62821234567", "ID");

  // now you get the number without country code
  long nationalNumber = phoneNumber.getNationalNumber();
} catch (NumberParseException e) {
   e.printStackTrace();
}

我还没有测试过代码。