android power key 长按8s 关机
来源:互联网 发布:comfortable zone 知乎 编辑:程序博客网 时间:2024/04/27 19:45
该功能是系统启动后,在任何情况下,长按power key 8s都能做到直接关机。因此在kernel中实现。
所有修改都在keypad driver中,如下文件。
mediatek\platform\mt6573\kernel\drivers\keypad\kpd.c:
#define FORCE_POWERKEY_SECONDS 8 //定义power key按键持续时间
struct timer_list timer;
//定时器timer初始化
static int timer_init() { init_timer(&timer); timer.data= 5; timer.expires = jiffies + (FORCE_POWERKEY_SECONDS*HZ); timer.function = timer_function; add_timer(&timer); printk("<0>ziheng add_timer\n"); return 0; }
//定时器timer退出
static void timer_exit()
{
del_timer(&timer);
}
//定时器到时事件处理函数
static void timer_function(int para) { timer_exit(); arch_reset(0, "charger"); //kernel强制关机接口}
按键时间在kpd_pwrkey_handler中处理,kpd_pwrkey_handler是一个tasklet,用于power key的按键中断下半部处理。
static void kpd_pwrkey_handler(unsigned long data){
bool pressed; u8 old_state = kpd_pwrkey_state; kpd_pwrkey_state = !kpd_pwrkey_state; pressed = (kpd_pwrkey_state == !!KPD_PWRKEY_POLARITY); if (kpd_show_hw_keycode) { printk(KPD_SAY "(%s) HW keycode = using EINT\n", pressed ? "pressed" : "released");
}
#ifdef FORCE_POWERKEY if(pressed == 1) { printk("<0> kpd_pwr_handler press 1\n"); timer_init(); } else if(pressed == 0) { printk("<0> kpd_pwr_handler press 0\n"); timer_exit();
}
#endif
kpd_backlight_handler(pressed, KPD_PWRKEY_MAP); input_report_key(kpd_input_dev, KPD_PWRKEY_MAP, pressed); kpd_print("report Linux keycode = %u\n", KPD_PWRKEY_MAP); /* for detecting the return to old_state */ mt65xx_eint_set_polarity(KPD_PWRKEY_EINT, old_state); mt65xx_eint_unmask(KPD_PWRKEY_EINT);
}
- android power key 长按8s 关机
- mtk android MT6573方案 power key 长按8s 关机功能实现
- mtk android MT6573方案 power key 长按8s 关机功能实现
- 设置Android设备长按Power直接关机
- [Android]长按电源键(Power Key)的处理
- 长按power key的流程分析
- Android长按Power键弹出关机Dialog框GlobalActions解析
- Android长按Power键弹出关机Dialog框GlobalActions解析
- Android长按Power键弹出关机Dialog框GlobalActions解析
- Android长按Power键弹出关机Dialog框GlobalActions解析
- 长按Power键关机从Framework到Kernel
- android4.2 长按POWER键3秒关机
- Android Framework层Power键关机流程(一,Power长按键操作处理)
- 长按POWER键, 一般会弹出关机选择界面, 提示关机或切换模式
- android长按power键自动关机定制
- Android Power Key Message
- android长按返回键弹出关机框
- android长按返回键弹出关机框
- shell 读取ini文件
- [Feature phone系列]手机芯片结构介绍
- android videoview,旋转 视频 orientation,rotation 等
- extjs4 【charts】 查阅 属性
- 软件项目管理流程总结
- android power key 长按8s 关机
- 搭建AXIS2 webservice
- 红薯 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
- Cygwin中文乱码 vim语法高亮 ls颜色显示
- 该做一些总结了
- Flex常用组件
- CSS制作水平垂直居中对齐
- jboss 基本配置(端口、编码、访问、log)
- Android的Window类 [转]