受Android4.0 组合键KEY_POWER+KEY_VOLUME_DOWN截屏功能启发,

实现组合键KEY_POWER+KEY_VOLUME_UP重启手机。

修改文件:

$(ANDROID_ROOT)\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java
方法public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn)中:
共修改两处;

第一处:

// Handle special keys.
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_DOWN:
case KeyEvent.KEYCODE_VOLUME_UP:
case KeyEvent.KEYCODE_VOLUME_MUTE: {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
if (down) {
if (isScreenOn && !mVolumeDownKeyTriggered
&& (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
mVolumeDownKeyTriggered = true;
mVolumeDownKeyTime = event.getDownTime();
mVolumeDownKeyConsumedByScreenshotChord = false;
cancelPendingPowerKeyAction();
interceptScreenshotChord();
}
} else {
mVolumeDownKeyTriggered = false;
cancelPendingScreenshotChordAction();
}
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
if (down) {
    //Modified here to reboot device start
if (!mVolumeUpKeyTriggered
&& (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
mVolumeUpKeyTriggered = true;
mVolumeUpKeyTime = event.getDownTime();
if(interceptRebootDevice()){
    return 0;
}
if(isScreenOn){
    cancelPendingPowerKeyAction();
cancelPendingScreenshotChordAction();
}
}
//Modified here to reboot device end
} else {
mVolumeUpKeyTriggered = false;
cancelPendingScreenshotChordAction();
cancelPendingRebootDeviceAction();
}
}

*********************************************************************************************

第二处:

case KeyEvent.KEYCODE_POWER: {
result &= ~ACTION_PASS_TO_USER;
if (down) {
    //Modified here to reboot device start.
if (!mPowerKeyTriggered
&& (event.getFlags() & KeyEvent.FLAG_FALLBACK) == 0) {
mPowerKeyTriggered = true;
mPowerKeyTime = event.getDownTime();
if(interceptRebootDevice()){
    return 0;
}
if(isScreenOn){
    interceptScreenshotChord();
}
}
//Modified here to reboot device end.

新增的变量及方法:

private long mVolumeUpKeyTime;

/*** Added by shihaijun for reboot devices without reason.*/private boolean interceptRebootDevice(){Log.d(TAG,"_______________enter inteceptRebootDevice_________");if(mPowerKeyTriggered && mVolumeUpKeyTriggered && !mVolumeDownKeyTriggered){final long now = SystemClock.uptimeMillis();if(now <= mVolumeUpKeyTime + SCREENSHOT_CHORD_DEBOUNCE_DELAY_MILLIS&& now <= mPowerKeyTime + SCREENSHOT_CHORD_DEBOUNCE_DELAY_MILLIS){Log.d(TAG,"_______________Reboot Device after "+ViewConfiguration.getGlobalActionKeyTimeout()+"______");mVolumeUpKeyConsumedByRebootDevice = true;cancelPendingPowerKeyAction();mHandler.postDelayed(mRebootDeviceLongPress,ViewConfiguration.getGlobalActionKeyTimeout());return true;}}return false;}/** Added by shihaijun to reboot device*/private Runnable mRebootDeviceLongPress = new Runnable() {public void run() {// TODO Auto-generated method stubtry {Power.reboot(null);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}};private void cancelPendingRebootDeviceAction(){mHandler.removeCallbacks(mRebootDeviceLongPress);}

Android4.0 实现组合键重启手机相关推荐

  1. 微软笔记本 Surface Pro 键盘失灵组合键重启的方法(原理不详)

    现象 微软笔记本 Surface Pro 键盘失灵,触摸板失灵,电源键可以正常使用. 操作步骤 1.长按电源鍵,持续按住直至电脑强制关机. 2.长按音量+键和电源键15秒以上,中间别管屏幕上显示什么, ...

  2. htc g1 android4.0,全球首款安卓手机HTC G1,一些你不知道的事

    IT之家9月29日消息 距离第一部Android手机T-Mobile G1(HTC Dream)已经十年之久,如今智能手机的形态已经发生了很大的变化,G1全QWERTY键盘的设计如今已很少在手机中见到 ...

  3. Python中的pynput中组合键的键值

    pynput 监听键盘组合键 监听键盘组合键 更多的其他组合键键值 监听键盘组合键 在使用pynput监听键盘组合键的时候,需要知道组合键的键值是什么才可以.例如下面: <48>代表的就是 ...

  4. Android 组合键

    电源键 + 音量上键 长按实现关机功能 Android 9.0 1 组合键关机实现 1.1 添加必要参数 1.1 添加 handler 信息 1.3 电源键 DOWN处理 1.4 电源键 UP 处理 ...

  5. android4.0的手机,高中低全覆盖 各价位Android4.0手机推荐

    11000元以内:华为C8812 毫无疑问,目前Android操作系统是市场上应用最广泛的手机操作系统,而该系统的表现可谓是十分令人满意的,同时,Android系统也在不断地完善,从目前主流的Andr ...

  6. linux 0.11 返回用户侧,iPhone 11 11 Pro 用户必备教程:重启手机,恢复模式,DFU模式...

    · 重启手机 · 先按音量+ 再按音量- 然后长按侧边按钮 等待Apple logo重新点亮,重启完成 · 进入恢复模式 · 先用数据线连接到电脑 然后按一下音量+ 再按一下音量- 然后长按侧边按钮 ...

  7. android 9.0 10.0 去掉音量键+Power键组合键的屏幕截图功能

    1.概述 在10.0的系统中由WindowManagerService这个系统服务来循环读取窗口获取的消息(包括按下,弹起,双击,单击等)然后分发到各个类接收处理这些消息,在这个过程中PhoneWin ...

  8. android组合按键截屏,三星安卓手机截图组合键图文汇总(4种)

    三星安卓手机因其综合性价比高的优势,在智能手机市场的份额非常大.所以,很多用户对三星安卓手机的一些功能都非常熟悉,比如:三星手机也有手机截图组合键,不过,三星拥有4种的组合键,不知道大家是否都了解,这 ...

  9. android组合键截图原理,三星安卓手机怎么截图组合键 三星安卓手机截图组合键步骤...

    三星安卓手机因其综合性价比高的优势,在智能手机市场的份额非常大.所以,很多用户对三星安卓手机的一些功能都非常熟悉,比如:三星手机也有手机截图组合键,不过,三星拥有4种的组合键,不知道大家是否都了解,这 ...

最新文章

  1. 四则运算关于加括号的思路
  2. 白话科普系列——最好用的浏览器 Chrome,你用了么?
  3. 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
  4. Educational Codeforces Round 112 (Rated for Div. 2)(A-D)
  5. 书写css伪类时冒号前或后多个空格导致该规则失效-softbar
  6. 《C++ primer》--第11章
  7. modprobe命令使用方法
  8. Qt之QHeaderView自定义排序(获取正确的QModelIndex)
  9. .net下模拟不同身份登陆以获取不同权限
  10. Zoho:尽快修复已遭利用的 ManageEngine 严重漏洞
  11. Tricks(五)—— Python 返回所有符合条件的下标
  12. 【数学分析笔记03】上确界和下确界
  13. c语言中平分怎么表示,平分水问题
  14. 用PROC FCMP创建函数
  15. 计算机桌面点不进系统,电脑无法进入系统怎么办?
  16. python画布组件_Python Tkinter 画布(Canvas)
  17. Python爬虫爬取微博评论案例详解
  18. 支付宝支付报 invalid-app-id : 无效的AppID参数
  19. 【美团】职级、薪酬、绩效全认知
  20. Ceph Octopus新版新功能:图形化Dashboard

热门文章

  1. 提升算法——lightGBM原理学习笔记
  2. bios 刷 灵耀14_华硕灵耀Deluxe14笔记本如何装win7|重装前设置Bios(图文)
  3. 百度地图最新版本sdk使用系列(四)-开启卫星地图,实时交通图,实现标注覆盖物等功能
  4. 利用队列解密QQ号码(三种方法)-->改编自《啊哈!算法》
  5. visio反向工程生成MySQL 数据库模型图
  6. [半监督学习] Virtual Adversarial Training: A Regularization Method for Supervised and SSL
  7. 视频号如何选品进行分享?
  8. feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法
  9. java 类似表的结构_Java实现相似结构表算法
  10. STM32 USB复合设备,USB键盘+自定义HID设备