Android4.0 实现组合键重启手机
受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 实现组合键重启手机相关推荐
- 微软笔记本 Surface Pro 键盘失灵组合键重启的方法(原理不详)
现象 微软笔记本 Surface Pro 键盘失灵,触摸板失灵,电源键可以正常使用. 操作步骤 1.长按电源鍵,持续按住直至电脑强制关机. 2.长按音量+键和电源键15秒以上,中间别管屏幕上显示什么, ...
- htc g1 android4.0,全球首款安卓手机HTC G1,一些你不知道的事
IT之家9月29日消息 距离第一部Android手机T-Mobile G1(HTC Dream)已经十年之久,如今智能手机的形态已经发生了很大的变化,G1全QWERTY键盘的设计如今已很少在手机中见到 ...
- Python中的pynput中组合键的键值
pynput 监听键盘组合键 监听键盘组合键 更多的其他组合键键值 监听键盘组合键 在使用pynput监听键盘组合键的时候,需要知道组合键的键值是什么才可以.例如下面: <48>代表的就是 ...
- Android 组合键
电源键 + 音量上键 长按实现关机功能 Android 9.0 1 组合键关机实现 1.1 添加必要参数 1.1 添加 handler 信息 1.3 电源键 DOWN处理 1.4 电源键 UP 处理 ...
- android4.0的手机,高中低全覆盖 各价位Android4.0手机推荐
11000元以内:华为C8812 毫无疑问,目前Android操作系统是市场上应用最广泛的手机操作系统,而该系统的表现可谓是十分令人满意的,同时,Android系统也在不断地完善,从目前主流的Andr ...
- linux 0.11 返回用户侧,iPhone 11 11 Pro 用户必备教程:重启手机,恢复模式,DFU模式...
· 重启手机 · 先按音量+ 再按音量- 然后长按侧边按钮 等待Apple logo重新点亮,重启完成 · 进入恢复模式 · 先用数据线连接到电脑 然后按一下音量+ 再按一下音量- 然后长按侧边按钮 ...
- android 9.0 10.0 去掉音量键+Power键组合键的屏幕截图功能
1.概述 在10.0的系统中由WindowManagerService这个系统服务来循环读取窗口获取的消息(包括按下,弹起,双击,单击等)然后分发到各个类接收处理这些消息,在这个过程中PhoneWin ...
- android组合按键截屏,三星安卓手机截图组合键图文汇总(4种)
三星安卓手机因其综合性价比高的优势,在智能手机市场的份额非常大.所以,很多用户对三星安卓手机的一些功能都非常熟悉,比如:三星手机也有手机截图组合键,不过,三星拥有4种的组合键,不知道大家是否都了解,这 ...
- android组合键截图原理,三星安卓手机怎么截图组合键 三星安卓手机截图组合键步骤...
三星安卓手机因其综合性价比高的优势,在智能手机市场的份额非常大.所以,很多用户对三星安卓手机的一些功能都非常熟悉,比如:三星手机也有手机截图组合键,不过,三星拥有4种的组合键,不知道大家是否都了解,这 ...
最新文章
- 四则运算关于加括号的思路
- 白话科普系列——最好用的浏览器 Chrome,你用了么?
- 看门狗(Watch Dog)是嵌入式系统中一种常用的保证系统可靠性的技术,()会产生看门狗中断。【详细!小白也能看懂!】
- Educational Codeforces Round 112 (Rated for Div. 2)(A-D)
- 书写css伪类时冒号前或后多个空格导致该规则失效-softbar
- 《C++ primer》--第11章
- modprobe命令使用方法
- Qt之QHeaderView自定义排序(获取正确的QModelIndex)
- .net下模拟不同身份登陆以获取不同权限
- Zoho:尽快修复已遭利用的 ManageEngine 严重漏洞
- Tricks(五)—— Python 返回所有符合条件的下标
- 【数学分析笔记03】上确界和下确界
- c语言中平分怎么表示,平分水问题
- 用PROC FCMP创建函数
- 计算机桌面点不进系统,电脑无法进入系统怎么办?
- python画布组件_Python Tkinter 画布(Canvas)
- Python爬虫爬取微博评论案例详解
- 支付宝支付报 invalid-app-id : 无效的AppID参数
- 【美团】职级、薪酬、绩效全认知
- Ceph Octopus新版新功能:图形化Dashboard
热门文章
- 提升算法——lightGBM原理学习笔记
- bios 刷 灵耀14_华硕灵耀Deluxe14笔记本如何装win7|重装前设置Bios(图文)
- 百度地图最新版本sdk使用系列(四)-开启卫星地图,实时交通图,实现标注覆盖物等功能
- 利用队列解密QQ号码(三种方法)-->改编自《啊哈!算法》
- visio反向工程生成MySQL 数据库模型图
- [半监督学习] Virtual Adversarial Training: A Regularization Method for Supervised and SSL
- 视频号如何选品进行分享?
- feof函数,fscanf函数,strtok函数等遇到的小疑惑解决办法
- java 类似表的结构_Java实现相似结构表算法
- STM32 USB复合设备,USB键盘+自定义HID设备