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拦截

相关推荐
脚踏实地,坚持不懈!19 分钟前
Android 电池健康度检测全流程(驱动 → 内核 → HAL → Framework)
android·linux
恋猫de小郭25 分钟前
Genkit Dart 1.0 发布,Flutter 原生的 AI Agent 终于完整了
android·前端·flutter
迪康妍妍30 分钟前
终端安全实战:用迪康终端安全管理系统实现U盘四分档管控与全量审计
android·运维·网络·安全·电脑
JackLam38 分钟前
mobile-use 使用与接入第三方 LLM 网关完整指南OC
android·ai·mobile use
snotJam1 小时前
关于Uniapp的Android自定义基座使用
android·uni-app
TST-魚爷1 小时前
易视讯会议摄像头电视安装教程
android·电脑·钉钉·腾讯会议·zoom会议
墨天梦11 小时前
B17_LifecycleLiveData与Flow
android·kotlin
_祝你今天愉快12 小时前
UI核心 - 绘制流程(测量、布局、绘制)
android
冬奇Lab13 小时前
LLM 驱动的自动化测试系列(07):移动端自动化(三)——Mobile-Agent-v3 与自研 GUI-Owl 模型路线
android·人工智能·测试
leobertlan16 小时前
痛苦系列 | DSP-02 频域切片:DTFT与DFT的探索
android·后端