statusbar--通知栏运营商显示(一)

android  4.3代码:

//双卡槽通知栏运营商信息显示



   /*
   更新运营商信息
   */
   private void updateCarrierText(int sub) {
        //sub:卡槽
        int textResId = 0;
        if (mAirplaneMode) {
            textResId = com.android.internal.R.string.lockscreen_airplane_mode_on;
        } else {
            if (DEBUG) {
                Slog.d(TAG, "updateCarrierText for sub:" + sub + " simState =" + mMSimState[sub]);
            }

            //mMSimState[sub]:SIM卡状态获取
            switch (mMSimState[sub]) {
                case ABSENT:
                case UNKNOWN:
                case NOT_READY:
                    textResId = com.android.internal.R.string.lockscreen_missing_sim_message_short;
                    break;
                case PERSO_LOCKED:
                    textResId = com.android.internal.R.string.lockscreen_network_locked_message;
                    break;
                case PIN_REQUIRED:
                    textResId = com.android.internal.R.string.lockscreen_sim_locked_message;
                    break;
                case PUK_REQUIRED:
                    textResId = com.android.internal.R.string.lockscreen_sim_puk_locked_message;
                    break;
                case READY:
                    // If the state is ready, set the text as network name.
                    mCarrierTextSub[sub] = mMSimNetworkName[sub];
                    break;
                case PERM_DISABLED:
                    textResId = com.android.internal.
                            R.string.lockscreen_permanent_disabled_sim_message_short;
                    break;
                case CARD_IO_ERROR:
                    textResId = com.android.internal.R.string.lockscreen_sim_error_message_short;
                    break;
                default:
                    textResId = com.android.internal.R.string.lockscreen_missing_sim_message_short;
                    break;
            }
        }


        if (textResId == com.android.internal.R.string.lockscreen_missing_sim_message_short
            && PhoneStatusBar.STATUSBAR_STYLE == PhoneStatusBar.STATUSBAR_STYLE_CT) {
                textResId = com.android.internal.R.string.lockscreen_missing_uim_message_short;
        }


        if (textResId != 0) {
            mCarrierTextSub[sub] = mContext.getString(textResId);
        }
    }


    /*
    判断是否插入SIM卡
    */
    public boolean iccSimCardExist(int sub) {
        return ((mMSimState[sub] == IccCardConstants.State.PIN_REQUIRED) || (mMSimState[sub] == IccCardConstants.State.PUK_REQUIRED)
                || (mMSimState[sub] == IccCardConstants.State.PERSO_LOCKED) || (mMSimState[sub] == IccCardConstants.State.READY)
                || (mMSimState[sub] == IccCardConstants.State.PERM_DISABLED) || (mMSimState[sub] == IccCardConstants.State.CARD_IO_ERROR)
                || (mMSimState[sub] == IccCardConstants.State.DETECTED));
    }

    
    /*
    setText 进运营商信息----显示
    */
    private void setCarrierText() {
        String carrierName = null;


//未插入双卡时运营商信息不显示,View.GONE
        if(iccSimCardExist(MSimConstants.SUB2)&&(!iccSimCardExist(MSimConstants.SUB1))){
        carrierName = getMultiSimName(MSimConstants.SUB2) + ":"
                    + mCarrierTextSub[MSimConstants.SUB2];
        }
//双卡槽直插入一张卡时只显示插入卡的运营商信息,View.VISIBLE
else if(iccSimCardExist(MSimConstants.SUB1)&&(!iccSimCardExist(MSimConstants.SUB2))){
        carrierName = getMultiSimName(MSimConstants.SUB1) + ":"
                    + mCarrierTextSub[MSimConstants.SUB1];
        }
//其他,View.VISIBLE
else{
            carrierName = getMultiSimName(MSimConstants.SUB1) + ":"
                    + mCarrierTextSub[MSimConstants.SUB1]
                    + "    "
                    + getMultiSimName(MSimConstants.SUB2) + ":"
                    + mCarrierTextSub[MSimConstants.SUB2];
        }


        for (int i = 0; i < mMobileLabelViews.size(); i++) {
            TextView v = mMobileLabelViews.get(i);
            v.setText(carrierName);
            
   //根据双卡状态决定运营商信息是否显示
            if(iccSimCardExist(MSimConstants.SUB1) && iccSimCardExist(MSimConstants.SUB2)){
            v.setVisibility(View.VISIBLE);
            }else{
            v.setVisibility(View.GONE);
            }
        }

    }


 private String getMultiSimName(int subscription) {
        return Settings.System.getString(mContext.getContentResolver(),
                Settings.System.MULTI_SIM_NAME[subscription]);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值