当前位置: 首页 > news >正文

Android14 AOSP支持短按关机

修改frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 

diff --git a/base/services/core/java/com/android/server/policy/PhoneWindowManager.java b/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 044da84e7..3cd9cf5f0 100644
--- a/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -697,6 +697,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {private static final int MSG_LOG_KEYBOARD_SYSTEM_EVENT = 26;//----rk-code----private static final int MSG_SLEEP_SHOW_DREAM = 27;
+    //add by donggua
+    private static final int MSG_POWER_SHUT_DOWN = 28; //支持短按关机private int screenWidth;private int screenHeight;
@@ -822,6 +824,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {case MSG_LOG_KEYBOARD_SYSTEM_EVENT:handleKeyboardSystemEvent(KeyboardLogEvent.from(msg.arg1), (KeyEvent) msg.obj);break;
+                case MSG_POWER_SHUT_DOWN://add by donggua,支持短按关机
+                    mWindowManagerFuncs.shutdown(false);
+                    break;}}}
@@ -4526,19 +4531,32 @@ public class PhoneWindowManager implements WindowManagerPolicy {}case KeyEvent.KEYCODE_POWER: {
-                logKeyboardSystemsEventOnActionUp(event, KeyboardLogEvent.TOGGLE_POWER);
-                EventLogTags.writeInterceptPower(
-                        KeyEvent.actionToString(event.getAction()),
-                        mPowerKeyHandled ? 1 : 0,
-                        mSingleKeyGestureDetector.getKeyPressCounter(KeyEvent.KEYCODE_POWER));
-                // Any activity on the power button stops the accessibility shortcut
-                result &= ~ACTION_PASS_TO_USER;
-                isWakeKey = false; // wake-up will be handled separately
-                if (down) {
-                    interceptPowerKeyDown(event, interactiveAndOn);
-                } else {
-                    interceptPowerKeyUp(event, canceled);
-                }
+                // logKeyboardSystemsEventOnActionUp(event, KeyboardLogEvent.TOGGLE_POWER);
+                // EventLogTags.writeInterceptPower(
+                //         KeyEvent.actionToString(event.getAction()),
+                //         mPowerKeyHandled ? 1 : 0,
+                //         mSingleKeyGestureDetector.getKeyPressCounter(KeyEvent.KEYCODE_POWER));
+                // // Any activity on the power button stops the accessibility shortcut
+                // result &= ~ACTION_PASS_TO_USER;
+                // isWakeKey = false; // wake-up will be handled separately
+                // if (down) {
+                //     interceptPowerKeyDown(event, interactiveAndOn);
+                // } else {
+                //     interceptPowerKeyUp(event, canceled);
+                // }
+                // add my donggua
+                // 支持短按电源事件关机
+                if(down){
+					if(mPowerManager.isScreenOn()) {
+						Message msg = mHandler.obtainMessage(MSG_POWER_SHUT_DOWN);
+						msg.setAsynchronous(true);
+						mHandler.sendMessageDelayed(msg,
+						ViewConfiguration.get(mContext).getDeviceGlobalActionKeyTimeout());
+					} else {
+						Log.e("GO to Wakeup--------> TTTEEE","keyCode :"+keyCode);
+						wakeUpFromPowerKey(event.getDownTime());
+					}
+				}   break;}

http://www.lryc.cn/news/503415.html

相关文章:

  • C# 和 go 关于can通信得 整理
  • vue常用命令汇总
  • 【C++习题】18.逆波兰表达式求值
  • 本地如何使用 yarn link 调试本地 npm 包
  • 江恩45年一书的自己一点读书见解
  • 影响 Linux、Unix 系统的 CUPS 漏洞可导致 RCE
  • 【汇编】思考汇编中的两个基本问题
  • Nest Dynamic modules 笔记
  • 生成式AI、大模型、多模态技术开发与应用学习清单
  • STM32 CubeMx HAL库 独立看门狗IWDG配置使用
  • 网络安全渗透测试概论
  • 【大数据技术基础】【记录Ubuntu 16.04升级到18.04】Ubuntu的一个版本升级到另一个版本
  • 知识库系统,集成neo4j,集成activiti工作流,集成es全文检索,知识图谱血缘关系,nlp知识库
  • 批量合并多个Excel到一个文件
  • CNCF云原生生态版图-项目和产品综合分析
  • MySQL生产环境备份脚本
  • leetcode 3224. 使差值相等的最少数组改动次数
  • 多线程动态库里面调用静态库分配内存函数导致的崩溃cltp汇编指令导致
  • 力扣刷题TOP101: 31.BM38 在二叉树中找到两个节点的最近公共祖先
  • 前端项目打包部署
  • 《CSS 知识点》大屏卡片布局思路:弹性布局 flex-grow
  • nVisual 登录页页面配置说明
  • 后端接受前端传递数组进行批量删除
  • 拍频实例 - 一组恒力矩电流采样数据
  • Jvm之NativeMemoryTracking 使用
  • PKCS#7、Bit padding(位填充)、Byte padding(字节填充)、Zero padding(零填充)
  • R语言学习笔记-1
  • 我在广州学 Mysql 系列之 数据“表”的基本操作
  • auto-gptq安装以及不适配软硬件环境可能出现的问题及解决方式
  • 【R语言】基础知识