Android设置唤醒键唤醒系统的功能

[FAQ05859][keypad]关于89 jb2上的自动设置按键唤醒系统的功能以及L版本上设置唤醒键
[Description]
目前89 jb2版本上是默认实现打电话状态下实现按键唤醒系统的功能的,这样可以满足电话过程中的音量键有效等需求,但是这套机制同时限制了一般状态下的按键唤醒系统的实现,因此,如果想要实现一般状态下的唤醒系统,需要拿掉这个feature
[Solution]
实现一般按键唤醒系统功能的具体方法如下:
1.mediatek\platform\mt6589\kernel\core\ mt_spm_sleep.c

#define WAKE_SRC_FOR_SUSPEND \
(WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | WAKE_SRC_CCIF_MD1 | \
WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | WAKE_SRC_PWRAP | \
WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
#define WAKE_SRC_FOR_DPIDLE \
(WAKE_SRC_KP | WAKE_SRC_GPT | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | \
WAKE_SRC_CCIF_MD1 | WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | \
WAKE_SRC_USB1_PDN | WAKE_SRC_USB0_PDN | WAKE_SRC_AFE | \
WAKE_SRC_PWRAP | WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)

确认上面, 唤醒源均已包含了WAKE_SRC_KP。
2. \mediatek\config\hedy89_we_jb2\mtk-kpd.kl
增加 key 102 HOME WAKE
3.kpd.c的probe函数,大概1152行
,upmu_set_rg_smps_autoff_dis(0x00);======>upmu_set_rg_smps_autoff_dis(0x01);//打开
keypad唤醒系统的功能
4.去掉1199行的#define MTK_KP_WAKESOURCE的宏定义,也就是去掉call status才能唤醒的功能
5.其他修改部分请参考FAQ02443
这样修改后会增加0.2ma左右的待机电流,请知悉
6、L版本上如何添加唤醒键
<a> .alps\kernel-3.10\drivers\misc\mediatek\spm\ mt_spm_sleep.c中

​
#define WAKE_SRC_FOR_SUSPEND \
(WAKE_SRC_KP | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | WAKE_SRC_CCIF_MD1 | \
WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | WAKE_SRC_PWRAP | \
WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)
#define WAKE_SRC_FOR_DPIDLE \
(WAKE_SRC_KP | WAKE_SRC_GPT | WAKE_SRC_EINT | WAKE_SRC_CCIF_MD2 | \
WAKE_SRC_CCIF_MD1 | WAKE_SRC_USB0_CD | WAKE_SRC_USB1_CD | \
WAKE_SRC_USB1_PDN | WAKE_SRC_USB0_PDN | WAKE_SRC_AFE | \
WAKE_SRC_PWRAP | WAKE_SRC_SYSPWREQ | WAKE_SRC_MD_WDT)

​

确认上面, 唤醒源均已包含了WAKE_SRC_KP。
<b>L0\alps\device\mediatek\k35v1_64\mtk-kpd.kl
增加 key 102 HOME 而不是key 102 HOME wake
<c> #ifndef USE_EARLY_SUSPEND

static int kpd_pdrv_suspend(struct platform_device *pdev, pm_message_t
state)
{
kpd_suspend = true;
#ifdef MTK_KP_WAKESOURCE //将该宏拿掉
if(call_status == 2){
kpd_print("kpd_early_suspend wake up source enable!! (%d)\n", kpd_suspend
);
}else{
kpd_wakeup_src_setting(0); ); //设置1打开keypad唤醒系统的功能
kpd_print("kpd_early_suspend wake up source disable!! (%d)\n", kpd_suspend
);
} #
endif
kpd_disable_backlight();
kpd_print("suspend!! (%d)\n", kpd_suspend);
return 0;
}中kpd_wakeup_src_setting(0);;======> kpd_wakeup_src_setting(1);
<d>

<d>
代码位置: framework\base\core\java\android\view\KeyEvent.java

public static final boolean isWakeKey(int keyCode) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
case KeyEvent.KEYCODE_POWER:
case KeyEvent.KEYCODE_MENU:
case KeyEvent.KEYCODE_SLEEP:
case KeyEvent.KEYCODE_WAKEUP:
case KeyEvent.KEYCODE_PAIRING:
case KeyEvent.KEYCODE_HOME://添加的
return true;
}
return false;
}


这个是上层的ketevent.java里的在这个地方有强制认定谁具有唤醒功能

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值