前言
简单介绍了如何在安卓中唤醒自定义按键唤醒
修改点汇总
Kernel: 上报特定键值
// kernel-3.18/drivers/input/keyboard/mediatek/kpd.c
static int kpd_pdrv_suspend(struct platform_device *pdev, pm_message_t state)
kpd_wakeup_src_setting(1); // 修改这里 上报特定键值
frameworks:响应特定键值唤醒
// frameworks/base/core/java/android/view/KeyEvent.java
public static final boolean isWakeKey(int keyCode) {
switch (keyCode) {
case KeyEvent.KEYCODE_MENU:
case KeyEvent.KEYCODE_WAKEUP:
case KeyEvent.KEYCODE_PAIRING:
case KeyEvent.KEYCODE_STEM_1:
case KeyEvent.KEYCODE_STEM_2:
case KeyEvent.KEYCODE_STEM_3:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
case KeyEvent.KEYCODE_VOLUME_DOWN: // 修改这里
case KeyEvent.KEYCODE_HOME:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
return true;
}
return false;
}