以编程方式在android双sim中检索两个手机号码(sim - 1& sim - 2)

时间:2017-02-13 10:45:04

标签: android telephonymanager

我正在为一个Android应用程序工作,需要从双SIM卡移动中检索/获取这两个SIM号码并应该显示给用户,基于用户选择特定的SIM号码 - 需要注册并将OTP发送到所选的SIM卡号。

我得到默认的SIM卡号码( sim-1或sim-2 )但是,我没有从双卡手机上获得两个SIM卡号码。

为此,我搜索了许多网站和链接。但是,我没有得到任何与我的要求相关的答案。

  
      
  • 我使用了 TelephonyManager 类,但它只返回Line1号码。
  •   
    TelephonyManager telephonyManager = ((TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE));
    telephonyManager.getLine1Number();
  
      
  • 我还尝试了 SubscriptionManager 类 - 从这个课程中我得到了两个数字但是,这些数字应该出现在   设置 - >模拟管理。对于某些设备,默认数字是   未知,太不可编辑。在这种情况下,我无法做到   取两个SIM号码。
  •   
 try {
        String simTwoNumber, simOneNumber;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            SubscriptionManager subManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
            List<SubscriptionInfo> subInfoList = null;
            subInfoList = subManager.getActiveSubscriptionInfoList();
            if (subInfoList != null && subInfoList.size() > 0) {
                switch (subInfoList.size()) {
                    case 2:
                        simTwoNumber = subInfoList.get(1).getNumber();
                    case 1:
                        simOneNumber = subInfoList.get(0).getNumber();
                        break;
                    default:
                        break;
                    }
               }
           }
       } catch (Exception e) {
        e.printStackTrace();
  }

Manifest文件

中添加了以下权限
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

任何人都可以帮我解决这个问题。请给出任何建议,以编程方式在android中检索这两个SIM号码。

提前致谢。

0 个答案:

没有答案