Android 系统按键拦截核心方法代码位置frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java# interceptKeyBeforeQueueingOverridepublicintinterceptKeyBeforeQueueing(KeyEventevent,intpolicyFlags){finalintkeyCodeevent.getKeyCode();finalbooleandownevent.getAction()KeyEvent.ACTION_DOWN;booleanisWakeKey(policyFlagsWindowManagerPolicy.FLAG_WAKE)!0||event.isWakeKey();booleanisKeyGestureTriggered(policyFlagsFLAG_KEY_GESTURE_TRIGGERED)!0;// There are key events that perform the operation as the current user,// and these should be ignored for visible background users.if(mVisibleBackgroundUsersEnabled!KeyEvent.isVisibleBackgroundUserAllowedKey(keyCode)!isKeyEventForCurrentUser(event.getDisplayId(),keyCode,null)){return0;}//客制化修改屏蔽按键if((keyCodeKeyEvent.KEYCODE_VOLUME_UP||keyCodeKeyEvent.KEYCODE_VOLUME_DOWN||keyCodeKeyEvent.KEYCODE_VOLUME_MUTE||keyCodeKeyEvent.KEYCODE_SETTINGS||keyCodeKeyEvent.KEYCODE_HOME)){return0;}//客制化修改屏蔽按键......}这是Android 系统输入管理核心类PhoneWindowManager中最关键的方法之一 。作用是在按键事件加入系统事件队列之前由系统框架层统一拦截、处理、决定按键的最终流向。它是系统级按键策略的总入口 所有物理按键电源、音量、返回、通话、电视按键等都会先经过这里再决定是否交给应用处理。如果对你有帮助就一键三连呗关注点赞收藏我会持续更新更多干货~~
Android 系统按键拦截核心方法
发布时间:2026/6/10 1:47:31
Android 系统按键拦截核心方法代码位置frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java# interceptKeyBeforeQueueingOverridepublicintinterceptKeyBeforeQueueing(KeyEventevent,intpolicyFlags){finalintkeyCodeevent.getKeyCode();finalbooleandownevent.getAction()KeyEvent.ACTION_DOWN;booleanisWakeKey(policyFlagsWindowManagerPolicy.FLAG_WAKE)!0||event.isWakeKey();booleanisKeyGestureTriggered(policyFlagsFLAG_KEY_GESTURE_TRIGGERED)!0;// There are key events that perform the operation as the current user,// and these should be ignored for visible background users.if(mVisibleBackgroundUsersEnabled!KeyEvent.isVisibleBackgroundUserAllowedKey(keyCode)!isKeyEventForCurrentUser(event.getDisplayId(),keyCode,null)){return0;}//客制化修改屏蔽按键if((keyCodeKeyEvent.KEYCODE_VOLUME_UP||keyCodeKeyEvent.KEYCODE_VOLUME_DOWN||keyCodeKeyEvent.KEYCODE_VOLUME_MUTE||keyCodeKeyEvent.KEYCODE_SETTINGS||keyCodeKeyEvent.KEYCODE_HOME)){return0;}//客制化修改屏蔽按键......}这是Android 系统输入管理核心类PhoneWindowManager中最关键的方法之一 。作用是在按键事件加入系统事件队列之前由系统框架层统一拦截、处理、决定按键的最终流向。它是系统级按键策略的总入口 所有物理按键电源、音量、返回、通话、电视按键等都会先经过这里再决定是否交给应用处理。如果对你有帮助就一键三连呗关注点赞收藏我会持续更新更多干货~~