终于把这个问题解决了,跟了好久的log,在PowerManagerService.java的userActivity()里面有如下代码:
if (eventType == BUTTON_EVENT && !mUseSoftwareAutoBrightness) {
mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
} else {
// don't clear button/keyboard backlights when the screen is touched.
mUserState |= SCREEN_BRIGHT;
}
代码里面判断当前事件类型是否为BUTTON_EVENT,并且检测mUseSoftwareAutoBrightness是否为false,如果是则下一个状态为SCREEN_BUTTON_BRIGHT(mKeyboardVisible 为false),这个状态下系统会去控制触摸屏按键背光灯;如果mUseSoftwareAutoBrightness为true则下一个状态为SCREEN_BRIGHT,这个状态下不会去控制触摸屏按键背光灯。因为默认为true,所以我们只需要把mUseSoftwareAutoBrightness设置为false就ok了。