如何在Android中以编程方式获取SIM1和SIM2手机号码

时间:2019-01-18 07:32:07

标签: telephonymanager android-subscriptionmanager

我想在Android中以编程方式获取SIM1和SIM2手机号码。我尝试使用电话管理器和订阅管理器。但总是我得到空值。我认为这是由于Google阻止了此功能的安全性问题。这个问题有没有其他选择。

仅供参考,我在清单文件中保留了READ_PHONE_STATE权限,并且还询问了运行时权限

使用电话管理器

TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String yourNumber = mTelephonyMgr.getLine1Number();

使用订阅管理器

rrayList<String> Numbers = new ArrayList<String>();
    SubscriptionManager mSubscriptionManager = SubscriptionManager.from(SimDetection.this);
    subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
    if (subInfoList.size() > 1) {
        isMultiSimEnabled = true;
    }
    for (SubscriptionInfo subscriptionInfo : subInfoList) {
        Numbers.add(subscriptionInfo.getNumber());
    }

0 个答案:

没有答案