1.概述
在10.0的系统中由WindowManagerService这个系统服务来循环读取窗口获取的消息(包括按下,弹起,双击,单击等)然后分发到各个类接收处理这些消息,在这个过程中PhoneWindowManager会进行消息过滤处理,PhoneWindowManager中有两个方法interceptKeyBeforeDispatching和interceptKeyBeforeQueueing,其中包括了几乎所有按键的处理,interceptKeyBeforeDispatching主要处理Home键、Menu键、Search键等,
interceptKeyBeforeQueueing主要处理音量键、电源键、耳机键等。接下来分析下源码
2.去掉音量键+Power键组合键的屏幕截图功能的核心类
frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java
3.去掉音量键+Power键组合键的屏幕截图功能的核心功能分析和实现
通过上述对截图的功能分析,接下来看PhoneWindowManager.java的核心代码
interceptKeyBeforeQueueing()如下:
// TODO(b/117479243): handle it i