[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里的在这个地方有强制认定谁具有唤醒功能

Android设置唤醒键唤醒系统的功能相关推荐

  1. Android 按power键唤醒屏幕流程

    http://blog.csdn.net/shadow_dance/article/details/8070252 屏幕唤醒流程: /framework/base/policy下面KeyguardVi ...

  2. java计算机毕业设计基于安卓Android的高校校园跑腿系统app(源码+系统+mysql数据库+Lw文档)

    项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中,电子商务的发展又促进了快递行业的诞生,由此延伸出相应的跑腿业务,特别是在校园内最后一公里为模式的平台迅速发展起来.为 ...

  3. java计算机毕业设计基于安卓Android的高校校园跑腿系统app uniapp 小程序

    项目介绍 随着计算机技术的发展,带来社会各行业的进步,信息化逐渐运用到人们的生活中,电子商务的发展又促进了快递行业的诞生,由此延伸出相应的跑腿业务,特别是在校园内最后一公里为模式的平台迅速发展起来.为 ...

  4. 关于89 jb2上的自动设置按键唤醒系统的功能以及L版本上设置唤醒键

    [Description] 目前89 jb2版本上是默认实现打电话状态下实现按键唤醒系统的功能的,这样可以满足电话过程中的音量键有效等需求, 但是这套机制同时限制了一般状态下的按键唤醒系统的实现,因此 ...

  5. Android 11.0 framework 增加音量+音量-键唤醒屏幕的功能

    目录 1.概述 2.framework 增加音量+音量-键唤醒屏幕的功能的核心代码

  6. win10 计算机休眠后无法唤醒,win10休眠后无法唤醒怎么办 win10系统怎么设置休眠时间...

    现在很多用户都安装了win10系统,对于很多刚安装win10的用户有很多功能不知道怎么设置,比如说电脑的休眠时间,如果不设置的话很快电脑就会进入休眠时间,如果电脑出现故障的话,就会引起电脑长期休眠无法 ...

  7. w10睡眠的计算机如何启动,win10睡眠按什么键唤醒 w10系统睡眠怎样唤醒

    在使用win10系统时,难免会有一段时间电脑处于无人操作的状况,这时系统就会自动进入睡眠状态,许多用户在win10系统进入睡眠后想要唤醒时就会随便按几个按键,虽然达到了目的,但是操作却不是正确的,那么 ...

  8. python控制电脑唤醒键_大神教你用Python实现Wake On Lan远程开机功能

    导读 这篇文章主要介绍了使用Python实现Wake On Lan远程开机功能,文中给大家补充介绍了python通过wakeonlan唤醒内网电脑开机,非常不错,感兴趣的朋友跟随小编一起学习吧 Wak ...

  9. 音量键唤醒屏幕--解决电源键坏掉的情况

    键盘布局映射文件通常放在/system/usr/keylayout下 文件格式: 键映射文件通常以UTF8文本文件格式存储于设备,通常有如下特性: 注释:用#表示,以#开头的内容都将被忽略. 空白:所 ...

最新文章

  1. selenium3 浏览器驱动下载及验证
  2. 利用Python的三元表达式解决Odoo中工资条中城镇、农村保险的问题
  3. pytorch笔记:Dataloader
  4. [一] 详细讲解: 线性表链式存储结构 中的 单链表; (数据结构和算法)
  5. linux 下转换UTC到本地时间
  6. PackStack安装OpenStack Pike
  7. Ubuntu配置完全教程
  8. php serialize和json_encode哪个更快_学习PHP的10个技巧
  9. 3年了,才这点工资,打死我都不相信
  10. oracle 存储过程 发送WebServie 请求
  11. (转)从业10年,芝加哥交易员王辰解码高频交易
  12. ykhmi是什么触摸屏软件_YKBuilder(中达优控触摸屏编程软件)
  13. wireshark抓包QQ查IP
  14. Laplace锐化算子和LOG算子
  15. win10系统怎样安装/更新独立显卡驱动
  16. 飞龙在天-中国新战机将在歼11基础上腾飞
  17. (二十一)查询我的订单
  18. H5移动端rem转成rpx
  19. 微软终止支持Win7 但系统仍然可正常使用
  20. EXCEL表格-数据拆分及分列

热门文章

  1. 【LTE】为什么使用SNR来表征信道质量,而并不用RSRQ?这两者的区别是什么?
  2. 计算机桌面底部图标不见了怎么办,电脑下面那一排图标不见了?怎么处理?
  3. android应用程序开发答案,第1章 Android概述--1.2 Android程序【含答案】 Android应用开发基础...
  4. 使用jQuery完成无缝轮播图案例
  5. sycm data解密
  6. python的日期+excel+mysql+sqlAlchemy+mongo+logging
  7. JavaScript 异步编程的前世今生(下)
  8. Linux安装Git(图文解说详细版)
  9. 检查COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组建失败,原因出现以下错误:80070005拒绝访问
  10. Appium+Java环境搭建及简单实例