首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SubscriptionInfo.getMnc()为两个具有不同载波的SIMs返回相同的值

SubscriptionInfo.getMnc()为两个具有不同载波的SIMs返回相同的值
EN

Stack Overflow用户
提问于 2015-07-24 13:32:16
回答 2查看 2.7K关注 0票数 15

我试图获得MCC和MNC号码(基本上我想要IMSI号码,但这些也足够了),在Android5.1设备上有双Sim (都是活动的)。因为5.1支持双Sim,所以我使用了如下所示的订阅管理器:

代码语言:javascript
运行
复制
SubscriptionManager manager = SubscriptionManager.from(this);
List<SubscriptionInfo> sil = manager.getActiveSubscriptionInfoList();
    if (sil != null) {
        for (SubscriptionInfo subInfo : sil) {
            Log.v("TestMain", "SubInfo:" + subInfo);
        }
    } else {
        Log.v("TestMain", "SubInfo: list is null");
    }

得到了这个输出:

代码语言:javascript
运行
复制
07-24 18:28:32.162    3844-3844/? V/TestMain﹕ SubInfo:{id=1, mcc 405 mnc 803, iccId=89918030914128062059 simSlotIndex=0 displayName=Aircel Karnataka carrierName=Aircel — Aircel Karnataka nameSource=0}
07-24 18:28:32.162    3844-3844/? V/TestMain﹕ SubInfo:{id=2,  mcc 405 mnc 803, iccId=8991860044481968955 simSlotIndex=1 displayName=CARD 2 carrierName=Vodafone Karnataka nameSource=0}

MCC(将与同一国家相同)注意到,尽管运营商不同,但跨国公司是相同的。

当我关掉电话的时候,我在我的日志里看到了这条线:

代码语言:javascript
运行
复制
07-24 18:31:02.295      616-616/? V/KeyguardUpdateMonitor﹕ SubInfo:{id=1,  mcc 405 mnc 803, iccId=89918030914128062059 simSlotIndex=0 displayName=CARD 1 carrierName=Emergency calls only — Aircel Karnataka nameSource=0}
07-24 18:31:02.295      616-616/? V/KeyguardUpdateMonitor﹕ SubInfo:{id=2,  mcc 404 mnc 86, iccId=8991860044481968955 simSlotIndex=1 displayName=CARD 2 carrierName=Emergency calls only — Vodafone Karnataka nameSource=0}

如您所见,密钥保护应用程序为两个sim获得正确的MNC。

因此,我研究了密钥保护应用程序的代码,发现代码与使用从这里获取的Android代码相同

代码语言:javascript
运行
复制
protected void handleSimSubscriptionInfoChanged() {
        if (DEBUG_SIM_STATES) {
            Log.v(TAG, "onSubscriptionInfoChanged()");
            List<SubscriptionInfo> sil = mSubscriptionManager.getActiveSubscriptionInfoList();
            if (sil != null) {
                for (SubscriptionInfo subInfo : sil) {
                    Log.v(TAG, "SubInfo:" + subInfo);
                }
            } else {
                Log.v(TAG, "onSubscriptionInfoChanged: list is null");
            }
        }

我探索了更多,发现即使是键盘保护应用程序得到MCC只有在手机关闭,其他时候,甚至它是得到相同的MNC为两个模拟人生。但承运人的名字总是不同的。

这是Android5.1中的一个bug,还是我做错了什么?

EN

Stack Overflow用户

发布于 2016-05-23 06:02:53

我在三星J5的Android5.1中也遇到了同样的问题,但它在Moto中使用Android6.0。由于SubscriptionManager是在Android5.1中引入的,我想这是Android5.1中的一个错误,在Android中进行了修正。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31611898

复制
相关文章

相似问题

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