一、kernel/include/linux/input.h
#define KEY_HOME 102
二、kernel/arch/arm/mach-rk30/board-rk30-sdk.c
{
.desc = "home",
.code = KEY_HOME,
.adc_value = 550,
.gpio = INVALID_GPIO,
.active_low = PRESS_LEV_LOW,
},
三、device/rockchip/rksdk/rk29-keypad.kl
key 143 NOTIFICATION WAKE
key 158 BACK
key 186 AVR_POWER
key 212 CAMERA
此处的值与KeycodeLabels.h对应。
四、frameworks/native/include/android/keycodes.h
/*
* Key codes.
*/
enum {
AKEYCODE_STB_POWER = 179,
AKEYCODE_STB_INPUT = 180,
AKEYCODE_AVR_POWER = 181,
AKEYCODE_AVR_INPUT = 182,
五、frameworks/native/include/input/KeycodeLabels.h
{ "TV_INPUT", 178 },
{ "STB_POWER", 179 },
{ "STB_INPUT", 180 },
{ "AVR_POWER", 181 },
{ "AVR_INPUT", 182 },
此处的值与KeyEvent.java对应。
六、frameworks/base/core/res/res/values/attrs.xml
<enum name="KEYCODE_TV_INPUT" value="178" />
<enum name="KEYCODE_STB_POWER" value="179" />
<enum name="KEYCODE_STB_INPUT" value="180" />
<enum name="KEYCODE_AVR_POWER" value="181" />
<enum name="KEYCODE_AVR_INPUT" value="182" />
七、frameworks/base/core/java/android/view/KeyEvent.java
* On TV remotes, switches the input mode on an external Set-top-box. */
public static final int KEYCODE_STB_INPUT = 180;
/** Key code constant: A/V Receiver power key.
* On TV remotes, toggles the power on an external A/V Receiver. */
public static final int KEYCODE_AVR_POWER = 181;
/** Key code constant: A/V Receiver input key.
* On TV remotes, switches the input mode on an external A/V Receiver. */
public static final int KEYCODE_AVR_INPUT = 182;
修改 LAST_KEYCODE
八、frameworks/native/libs/input/Input.cpp
bool KeyEvent::isSystemKey(int32_t keyCode) {
switch (keyCode) {
case AKEYCODE_MENU:
case AKEYCODE_SOFT_RIGHT:
case AKEYCODE_HOME:
case AKEYCODE_BACK:
case AKEYCODE_CALL:
case AKEYCODE_ENDCALL:
case AKEYCODE_VOLUME_UP:
case AKEYCODE_VOLUME_DOWN:
case AKEYCODE_VOLUME_MUTE:
case AKEYCODE_MUTE:
九、
make update-api