从android 4.1.1 到android 4.2 telephony的变化

 首先,最大的变化是代码路径的变化:

从原来的frameworks/base/telephony 到 frameworks/opt/telephony, 这样,telephony就可以有独立的分支(branch).

把常量放到一个类文件中

例如把GsmDataConnectionTracker.java中的常量放到DctConstants.java中。
把Phone.java中的常量放到PhoneConstants.java中。

Move the following code from PhoneFactory.java to TelephonyManager.java.

public  static  int getPhoneType( int networkMode) {
         switch(networkMode) {
         case RILConstants.NETWORK_MODE_CDMA:
         case RILConstants.NETWORK_MODE_CDMA_NO_EVDO:
         case RILConstants.NETWORK_MODE_EVDO_NO_CDMA:
             return Phone.PHONE_TYPE_CDMA;

         case RILConstants.NETWORK_MODE_WCDMA_PREF:
         case RILConstants.NETWORK_MODE_GSM_ONLY:
         case RILConstants.NETWORK_MODE_WCDMA_ONLY:
         case RILConstants.NETWORK_MODE_GSM_UMTS:
             return Phone.PHONE_TYPE_GSM;

         //  Use CDMA Phone for the global mode including CDMA
         case RILConstants.NETWORK_MODE_GLOBAL:
         case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO:
         case RILConstants.NETWORK_MODE_LTE_CMDA_EVDO_GSM_WCDMA:
             return Phone.PHONE_TYPE_CDMA;

         case RILConstants.NETWORK_MODE_LTE_ONLY:
             if (BaseCommands.getLteOnCdmaModeStatic() == Phone.LTE_ON_CDMA_TRUE) {
                 return Phone.PHONE_TYPE_CDMA;
            }  else {
                 return Phone.PHONE_TYPE_GSM;
            }
         default:
             return Phone.PHONE_TYPE_GSM;
        }

Move the following code from both of CDMAPhone and GSMPhone to PhoneBase.

public SignalStrength getSignalStrength() {
         return mSST.mSignalStrength;
    }
void  notifySignalStrength() {
        mNotifier.notifySignalStrength( this);
    }

Move the following code from CommandsInterface.java to TelephonyManager.java

public  static  int getLteOnCdmaModeStatic() {
         int retVal;
         int curVal;
        String productType = "";

        curVal = SystemProperties.getInt(TelephonyProperties.PROPERTY_LTE_ON_CDMA_DEVICE,
                    Phone.LTE_ON_CDMA_UNKNOWN);
        retVal = curVal;
         if (retVal == Phone.LTE_ON_CDMA_UNKNOWN) {
            Matcher matcher = sProductTypePattern.matcher(sKernelCmdLine);
             if (matcher.find()) {
                productType = matcher.group(1);
                 if (sLteOnCdmaProductType.equals(productType)) {
                    retVal = Phone.LTE_ON_CDMA_TRUE;
                }  else {
                    retVal = Phone.LTE_ON_CDMA_FALSE;
                }
            }  else {
                retVal = Phone.LTE_ON_CDMA_FALSE;
            }
        }

        Log.d(LOG_TAG, "getLteOnCdmaMode=" + retVal + " curVal=" + curVal +
                " product_type='" + productType +
                "' lteOnCdmaProductType='" + sLteOnCdmaProductType + "'");
         return retVal;
    }

private  static String getProcCmdLine()
    {
        String cmdline = "";
        FileInputStream is =  null;
         try {
            is =  new FileInputStream("/proc/cmdline");
             byte [] buffer =  new  byte[2048];
             int count = is.read(buffer);
             if (count > 0) {
                cmdline =  new String(buffer, 0, count);
            }
        }  catch (IOException e) {
            Log.d(LOG_TAG, "No /proc/cmdline exception=" + e);
        }  finally {
             if (is !=  null) {
                 try {
                    is.close();
                }  catch (IOException e) {
                }
            }
        }
        Log.d(LOG_TAG, "/proc/cmdline=" + cmdline);
         return cmdline;
    }

转载于:https://www.cnblogs.com/kangyi/archive/2012/11/21/2781040.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值