首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android5.0,SIM_STATE_ABSENT在第二个插槽返回false,即使存在Sim卡

Android5.0,SIM_STATE_ABSENT在第二个插槽返回false,即使存在Sim卡
EN

Stack Overflow用户
提问于 2016-04-01 08:22:12
回答 1查看 1.3K关注 0票数 0

我一直试图在我的应用程序中显示gsmSignalStrength()。下面的代码用于检查sim是否存在

代码语言:javascript
复制
private boolean checkIfSimIsPresent() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
        SubscriptionManager sManager = (SubscriptionManager) mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
        SubscriptionInfo infoSim1 = sManager.getActiveSubscriptionInfoForSimSlotIndex(0);
        SubscriptionInfo infoSim2 = sManager.getActiveSubscriptionInfoForSimSlotIndex(1);
        if(infoSim1 != null || infoSim2 != null) {
            return true;
        }
    } else {
        TelephonyManager telephonyManager = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
        if (telephonyManager.getSimState() != TelephonyManager.SIM_STATE_ABSENT){
            return true;
        }
    }
    return false;
}

这段代码非常好。但是在AndroidLollipo5.0中,即使插入sim卡,第二个Sim插槽也总是返回false。

有没有人面临过同样的问题?Android系统显示gsmStrength,但是为什么电话管理器中的SIM_STATE_ABSENT返回false?

一般情况下,Android系统如何显示正确的值。他们内部在听什么??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-10 13:10:43

回答有点晚,但原因是在API级别22,即Android5.1中添加了双sim功能,还有Android5.0,也就是API级别21。查看这里的详细信息:https://developer.android.com/reference/android/telephony/SubscriptionManager.html#getActiveSubscriptionInfoForSimSlotIndex(int)

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

https://stackoverflow.com/questions/36351449

复制
相关文章

相似问题

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