标签:
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 void setValueSummary(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 boolean isNoBaseband() { // 添加这个方法,判断基带版本 return SystemProperties.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进去,可看到效果
标签:
原文地址:http://www.cnblogs.com/rustfisher/p/4722539.html