今天犯一个很大很大的错误,几天前有一个bug要求修改关机对话框中不要显示情景模式那三个按钮(正常,静音,震动),看代码那三按钮是这样加入对话框中的:
文件路径:rameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java
} else if (GLOBAL_ACTION_KEY_SILENT.equals(actionKey)) {
if (mShowSilentToggle) {
mItems.add(mSilentModeAction);
}
}通过判断属性mShowSilentToggle是否真,若为真由加入情景模式选项,而mShowSilentToggle是在
mShowSilentToggle = SHOW_SILENT_TOGGLE && !mContext.getResources().getBoolean(
com.android.internal.R.bool.config_useFixedVolume);
这里定义,想着只要修改一下属性:config_useFixedVolume的值即可,而该属性的值在文件 :framework/base/core/res/res/values/config.xml中定义
false将其改为:true 验证是OK的,关机对话框中没有再显示那三情景模式按钮,之后就直接提交代码了,因为经常需要对该类属性值的修改所以也没特意去留意什么,
今天突然项目SPM再研发群里的问属性值:ture 是谁修改,说系统默认值是true,我一看是我前几天修改,就直接在群里说了这属性是我修改的,他又接着问:现在手机的两个音量按键都无效果了,不能操作声音的增大减小,一想我修改那值只关机对话框的显示有影响,怎么就影响到声音按键了,就直接回复他 音量按键没作用不是我修改造成的,我那修改只对关机对话框的显示有影响,他让再确认一下是不是修改造成,刚刚我们又是在整个研发群里讨论,80来号人都看着我们聊天的,我也不拒绝他说 不是我修改的造的,不需再验证了,后来我老大也找到我,让我再确认一下声音按键无效是不是我修改那属性值造,
我就验证了一下,自己也怕是因为自己修改改也那问题,确定了不是我造成也放心,将那值修改为false,编译res, 放入手机验证,我FUCK,手机音量按键确实有作用了,难到真的是修改造成,我一练反复验证了两次确实是那值影响的,
仔细看代码:
mShowSilentToggle = SHOW_SILENT_TOGGLE && !mContext.getResources().getBoolean(
com.android.internal.R.bool.config_useFixedVolume);
之中有一个属性SHOW_SILENT_TOGGLE,而它的定义是:
private static final boolean SHOW_SILENT_TOGGLE = true;
该属性才是真正控件关机对话框情景模式按键显示的值 ,
切记,切记