有两个地方需要修改。
1. xxx.kl文件
在system/usr/keylayout/目录下,有三个文件:
XXX_on.kl :对应电源键的扫描码,字符以及是否唤醒
XXX_gpio_key_15.kl为机身按键的
keypad.kl 为扩展键盘的
只有以上三个文件都没有定义,才会去generic.kl文件中找。
所以,第一步,需要到上面对应的.kl文件中找到对应的按键项,把其中的wakeup属性设置为true,
然后,在把该文件push到/system/usr/keylayout/下,当然,这是在调试时这样做,
如果要把这个修改加到产品中,则需要找到代码目录下的对应的kl文件进行修改。
例如,在frameworks/base/data/keyboards/generic.kl文件中,把对应按键后,加入wakeup关键字。
2. 在PhoneWindowManager.java中,
有个isWakeKeyWhenScreenOff(int keyCode)方法,在该方法中,将对应按键时,返回true即可。