修改双卡拨号时,弹出的dialog选择SIM1、SIM2界面改为SIM卡的运营商名字

在拨打电话按钮上,根据SIM卡状态显示运营商名称,优化用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

          前段时间, 一个外单项目的需要,查看了下这方面代码,修改的地方很小,主要通过TelephonyManager中类的getNetworkOperatorName()方法获得网络运营商名称

在Phone\src\com\android\phone\MsmsDialerActivity下面,找到protected Dialog onCreateDialog方法


修改前:

            

  Button[] callButton = new Button[mPhoneCount];
                int[] callMark = {
                        R.id.callmark1, R.id.callmark2
                };
                int[] subString = {
                        R.string.sub_1, R.string.sub_2        
                };
                boolean[] subActive = {
                        mSub1IsActive, mSub2IsActive
                };
                int index = 0;
                for (index = 0; index < mPhoneCount; index++) {
                    callButton[index] = (Button) layout.findViewById(callMark[index]);
                    callButton[index].setEnabled(subActive[index]);
                    callButton[index].setText(getString(subString[index]));        //sim1、sim2
                    callButton[index].setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                            dismissDialog(CHOOSE_SIM_DIALOG);
                            switch (v.getId()) {
                                case R.id.callmark1:
                                    startOutgoingCall(MsmsConstants.SUB1, false);
                                    break;
                                case R.id.callmark2:
                                    startOutgoingCall(MsmsConstants.SUB2, false);
                                    break;
                            }
                        }
                    });
                }
                break;


修改后:

                Button[] callButton = new Button[mPhoneCount];
                int[] callMark = {
                        R.id.callmark1, R.id.callmark2
                };
                int[] subString = {
                        R.string.sub_1, R.string.sub_2
                };
                boolean[] subActive = {
                        mSub1IsActive, mSub2IsActive
                };
                int index = 0;
                for (index = 0; index < mPhoneCount; index++) {
                    callButton[index] = (Button) layout.findViewById(callMark[index]);
                    callButton[index].setEnabled(subActive[index]);

                       //start modify  by yang   2012-10-25 
//                    callButton[index].setText(getString(subString[index]));
                    
                    
                    {
                    TelephonyManager tm=(TelephonyManager)getBaseContext().getSystemService(
                    PhoneFactory.getServiceName(Context.TELEPHONY_SERVICE,index));
                    if (tm.hasIccCard()&&(tm.getNetworkOperatorName() != null)
                    && tm.getSimState()==TelephonyManager.SIM_STATE_READY){
                 
                    if(tm.getNetworkOperatorName().equals("")){
                    callButton[index].setText(com.android.internal.R.string.lockscreen_carrier_default);
                    }
                    else{
                    callButton[index].setText(tm.getNetworkOperatorName());
                    }
                    }
                    else{
                    callButton[index].setText(getString(subString[index]));
                    }
                    }                

         //end    modify                      
                    
                    callButton[index].setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {
                            dismissDialog(CHOOSE_SIM_DIALOG);
                            switch (v.getId()) {
                                case R.id.callmark1:
                                    startOutgoingCall(MsmsConstants.SUB1, false);
                                    break;
                                case R.id.callmark2:
                                    startOutgoingCall(MsmsConstants.SUB2, false);
                                    break;
                            }
                        }
                    });
                }
                break;

  

        有兴趣的可以试下                 

      

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值