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

相关推荐
北京自在科技4 小时前
谷歌 Find Hub 迎来新版本更新
android·安卓
古法安卓9 小时前
Android-休眠唤醒后onLocationChanged没有数据问题排查
android·java·android studio
Htr_12 小时前
Creem 2.0 使用指南:面向 AI 构建时代的资金平台
android·数据库·人工智能·ui·photoshop
wardenlzr14 小时前
车机看门狗(Watchdog)为何会让整机硬重启
android·优化·车机
IT毕设实战小研14 小时前
基于大数据的商场商铺数据分析与可视化的设计与实现
android·java·大数据·django·课程设计
aqi0014 小时前
一文读懂 HarmonyOS 7.0 带来的十大API重要升级
android·华为·harmonyos·鸿蒙·harmony
是店小二呀15 小时前
鸿蒙PC开源移植:CodeLite原生IDE与Remote Agent适配
android·智能手机·远程桌面
终端安全笔记16 小时前
iOS 27 给了租赁一个新工具,但它只认受监督的设备
android·网络·安全·ios
爱笑鱼16 小时前
Android 系统启动机制(八):系统服务怎样从创建走到可用?SystemServiceManager 和 Boot Phase 各管什么?
android