首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >二次SIM的MNC和MCC

二次SIM的MNC和MCC
EN

Stack Overflow用户
提问于 2016-02-17 06:08:03
回答 3查看 2.5K关注 0票数 2

我知道使用TelephonyManager我们可以得到我们的网络提供商的跨国公司和MCC,

代码语言:javascript
运行
复制
TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String networkOperator = tel.getNetworkOperator();

if (networkOperator != null) {
    int mcc = Integer.parseInt(networkOperator.substring(0, 3));
    int mnc = Integer.parseInt(networkOperator.substring(3));
}

但我只能得到MNC和MCC的数据。我想知道有没有一种方法来获取mnc,mcc,lac和cellid的一个设备的二次西利德在android。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-17 10:48:59

在API 22之前,很难实现您想要的结果。

我相信在API 22之前,双SIM最初并不受Android的支持。因此,每个移动厂商都应该有自己的实现。也许,您应该获得它们的API/SDK并将它们包含到您的项目中。只有这样,您才能访问他们的API。

从API22开始,我认为您可以使用SubscriptionManager

代码语言:javascript
运行
复制
    int mccSlot1 = -1;
    int mccSlot2 = -1;
    int mncSlot1 = -1;
    int mncSlot2 = -1;

    SubscriptionManager subManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);

    if(subManager.getActiveSubscriptionInfoCount() >= 1) {
        mccSlot1 = subManager.getActiveSubscriptionInfo(0).getMcc();
        mncSlot1 = subManager.getActiveSubscriptionInfo(0).getMnc();
    }

    if(subManager.getActiveSubscriptionInfoCount() >= 2) {
        mccSlot2 = subManager.getActiveSubscriptionInfo(1).getMcc();
        mncSlot2 = subManager.getActiveSubscriptionInfo(1).getMnc();
    }

问题https://stackoverflow.com/a/32871156/4860513提到了同样的安卓限制。因此,我真的认为在API22之前用纯Android实现这一点是不可能的。

票数 3
EN

Stack Overflow用户

发布于 2018-02-02 09:43:54

getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);SubscriptionManager subManager = (SubscriptionManager)

代码语言:javascript
运行
复制
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE)
            == PackageManager.PERMISSION_GRANTED) {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
            if (subManager.getActiveSubscriptionInfoCount() >= 1) {
                List<SubscriptionInfo> subscriptionInfoList;
                subscriptionInfoList=subManager.getActiveSubscriptionInfoList();
                mccSlot1 = subscriptionInfoList.get(0).getMcc();
                mncSlot1 = subscriptionInfoList.get(0).getMnc();
                Toast.makeText(this, "Sim slot 1 " + mccSlot1 + " " + mncSlot1, Toast.LENGTH_SHORT).show();
                mccSlot2 = subscriptionInfoList.get(1).getMcc();
                mncSlot2 = subscriptionInfoList.get(1).getMnc();
                Toast.makeText(this, "Sim slot 1 " + mccSlot2 + " " + mncSlot2, Toast.LENGTH_SHORT).show();

            }
        } else {
            TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
            if (telephonyManager == null) {
                return;
            }
            String mCCMncCode = telephonyManager.getNetworkOperator();
            String mccCode = null;
            String mncCode = null;
            if (TextUtils.isEmpty(mCCMncCode)) {
                return;
            }

            final int MNC_CODE_LENGTH = 3;
            if (mCCMncCode.length() >= MNC_CODE_LENGTH) {
                mccCode = mCCMncCode.substring(0, MNC_CODE_LENGTH);
            }

            if (mCCMncCode.length() > MNC_CODE_LENGTH) {
                mncCode = mCCMncCode.substring(MNC_CODE_LENGTH);
            }
            Toast.makeText(this, "Lower than API 22 " + mccCode + " " + mncCode, Toast.LENGTH_SHORT).show();
            return;
        }
    }
    else {
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_PHONE_STATE}, 1);
    }
票数 3
EN

Stack Overflow用户

发布于 2017-02-16 12:22:24

代码语言:javascript
运行
复制
        SubscriptionManager subManager = (SubscriptionManager) getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
        List<SubscriptionInfo> subscriptionInfoList=new ArrayList<>();
        subscriptionInfoList=subManager.getActiveSubscriptionInfoList();
        Log.d("LIST LIST",subscriptionInfoList.toString());

原木

代码语言:javascript
运行
复制
[{id=4, iccId=89918782910310260628 simSlotIndex=0 displayName=Jio 4G carrierName=Jio 4G nameSource=0 iconTint=-16746133 dataRoaming=0 iconBitmap=android.graphics.Bitmap@2758949 mcc 405 mnc 861 SimProvisioningStatus 0 status 1}, {id=1, iccId=8991000826229271344 simSlotIndex=1 displayName=airtel carrierName=airtel nameSource=2 iconTint=-16746133 dataRoaming=0 iconBitmap=android.graphics.Bitmap@355e24e mcc 404 mnc 45 SimProvisioningStatus 0 status 1}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35449117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档