Android 按键拦截

1. 系统深度拦截

拦截点:frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

拦截接口:interceptKeyBeforeDispatchingInner

java 复制代码
/** {@inheritDoc} */
@Override
public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {
        final long result = interceptKeyBeforeDispatchingInner(win, event, policyFlags);
        final int eventDisplayId = event.getDisplayId();

        ...

}

private long interceptKeyBeforeDispatchingInner(WindowState win, KeyEvent event,
             int policyFlags) {
        final boolean keyguardOn = keyguardOn();
        final int keyCode = event.getKeyCode();
        final int repeatCount = event.getRepeatCount();
        ...
        
        //拦截
        if(keyCode ==  KeyEvent.KEYCODE_AUTO_SPEECH)
        {
            return -1;
        }
           
  

2. APP拦截

相关推荐
故渊at5 分钟前
第二板块:Android 四大组件标准化学理 | 第十二篇:四大组件全景总结与系统服务(System Server)架构
android·架构·wpf·四大组件·system service
问心无愧051319 分钟前
ctf sow web入门112
android·前端·笔记
朱涛的自习室1 小时前
Munk AI 正式开源:一个“自我进化”的 AI 测试引擎
android·人工智能·github
啦啦啦_99991 小时前
4. Transformer_3_解码器部分
android·深度学习·transformer
数智工坊2 小时前
【ROS 2 全栈入门指南三】:Action、参数与Launch文件全链路指南
android·stm32·嵌入式硬件·学习·机器人
问心无愧05132 小时前
ctf show web入门109
android·前端·笔记
xinhuanjieyi3 小时前
Android 画板应用kotlin实现
android·开发语言·kotlin
故渊at3 小时前
第四板块:Android 输入系统与触控事件 | 第十六篇:按键分发与软键盘(IME)的窗口协同
android·软键盘·输入系统·触控事件·按键分发
故渊at3 小时前
第三板块:Android 图形渲染与窗口体系 | 第十四篇:View 绘制体系与 RenderThread 异步渲染
android·图形渲染·ui线程·renderthread·view体系