状态栏3G-4G信号
//80平台,3G项目,针对3G/4G信号作假,主要有两种方案:
/***
*一.静态作假(U165系列):
A)简单说明:数据流量信号(信号条上的小图标)不随真实信号的改变而改变,只根据统一切换指令中切换的SIM卡信号(信号条左边大图标)类型而改变,例如,down机默认normal(真实),那么插卡后SIM卡信号图标和数据流量图标都会根据真实信号显示,当用户在统一切换指令中手动选择了3G(一说双3G),那么状态栏中SIM卡信号大图标和数据流量小图标都将变为3G.
B)修改文件:导入时,具体的修改文件,可以在U1653Q的修改记录中查找我的标签(张亚伦)查看详细记录
P.S.为了方便起见,以后:数据流量信号——小图标,SIM卡信号——大图标。下面简单介绍一下作假流程,以及经常修改的地方和方法。
*/
/**
1.默认值修改
a)路径:framworks/base/core/java/android/os/ProjectManager.java
b)文件不存在时,返回默认值;统一信息切换指令中有变动时,返回用户手动切换的值
c)返回值: 0-关闭(normal) , 3-3G, 4-double 4G,5-single 4G
*/
private static final String GTYPE_FILE_NAME = "GTypeFlag";
public static int readGTypeFlag()
{
byte flag = 0;
File file = new File(INTERNAL_DIR,GTYPE_FILE_NAME);
if(!file.exists()){
if(isAndroid()){
return 0;//默认normal
}else{
return 5;//默认single 4G
}
}
try {
FileInputStream fis = new FileInputStream(file);
flag = (byte)fis.read();
fis.close();
} catch (Exception e) {
Log.e(TAG,"readGTypeFlag e " + e.toString());
return -1;
}
Log.e(TAG," readGTypeFlag flag="+flag);
return (int)flag;
}
/**
2.状态栏大图标显示
a)路径:frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/SignalClusterView.java
b)刷新状态栏中的大图标
c)当系统不处于飞行模式并且能接受到网络信号时,调用TelephonyIcons类中的getTypeIcon方法,获去所需图标
*/
public boolean apply(boolean isSecondaryIcon) {
Xlog.d(TAG, "apply(" + mSubId + ")," + " mMobileVisible= " + mMobileVisible +
", mIsAirplaneMode= " + mIsAirplaneMode);
...
if (!mIsAirplaneMode && mNetworkType != null) {