android基带版本,Android - 基带版本为未知时自动隐藏

Android5.1

机器没有刷入基带时,在Settings - About tablet中,Baseband version那栏显示Unknown

现在希望在未知基带版本时不显示这一栏

参考《Android5.1 壁纸来源选项中有两个“壁纸”选项》,可知这些设置说明是动态加载的Fragment

首先找到加载About tablet的地方

packages/apps/Settings/src/com/android/settings/ DeviceInfoSettings.java

可以看到 public class DeviceInfoSettings extends SettingsPreferenceFragment implements Indexable

寻找关于基带的信息

private static final String KEY_BASEBAND_VERSION = "baseband_version";

......

setValueSummary(KEY_BASEBAND_VERSION,"gsm.version.baseband");

......//Remove Baseband version if wifi-only device

if(Utils.isWifiOnly(getActivity())) {

getPreferenceScreen().removePreference(findPreference(KEY_BASEBAND_VERSION));

}

......private voidsetValueSummary(String preference, String property) {try{

findPreference(preference).setSummary(

SystemProperties.get(property,getResources().getString(R.string.device_info_default)));

}catch(RuntimeException e) {//No recovery

}

}

仅支持wifi,不支持SIM卡的机器是不显示基带版本的

setValueSummary中,取用了R.string.device_info_default

搜索device_info_default可得“未知”、“Unknown”等等

添加删除Baseband的判断条件,参考setValueSummary里使用的方法

private booleanisNoBaseband() {//添加这个方法,判断基带版本

returnSystemProperties.get(KEY_BASEBAND_VERSION,

getResources().getString(R.string.device_info_default))

.equals(getResources().getString(R.string.device_info_default));

}//Remove Baseband version if wifi-only device 加一个判断条件

if (Utils.isWifiOnly(getActivity()) ||isNoBaseband()) {

getPreferenceScreen().removePreference(findPreference(KEY_BASEBAND_VERSION));

}

千万不能使用具体的字符串来判断

比如这样:

SystemProperties.get(KEY_BASEBAND_VERSION,getResources().getString(R.string.device_info_default))

.equals("Unknown")

如果换了一个系统语言,比如换成中文;那这个判断就失效了

修改完成后,编译push进去,可看到效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值