【问题标题】:Obtain the phone number of the phone WITHOUT country prefix获取没有国家前缀的电话的电话号码
【发布时间】:2017-11-23 08:16:27
【问题描述】:

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

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

然而,问题在于该字符串还将包含国际拨号前缀,即看起来像这样:

'+[prefix][phoneNumber]'

由于prefixbetween 1 and 3 digits 不同,我们不能简单地修剪它...

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

【问题讨论】:

    标签: android phone-number telephonymanager


    【解决方案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();
    }
    

    不过我还没有测试过代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-27
      • 2012-06-02
      • 1970-01-01
      • 2011-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多