事件分发前的拦截过程

来源:互联网 发布:如何用java编写小游戏 编辑:程序博客网 时间:2024/05/17 12:03

https://m.2cto.com/kf/201611/563390.html

第一次事件拦截    interceptKeyBeforeQueueing

这里写图片描述

返回0则意味着事件被拦截,返回1则意味着事件允许被发送到应用程序中

第二次事件拦截   interceptKeyBeforeDispatching

这里写图片描述

private static final boolean warnopenOrclose = TopwiseProp.getDefaultSettingBoolean("default_lakala_fangchai_warnning",false);
//返回值为-1则说明事件被拦截,返回值为0则说明事件被放行
@Overridepublic long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) {    final int keyCode = event.getKeyCode();    final int repeatCount = event.getRepeatCount();//重复次数    //add for 触发状态下禁止导航栏的功能    Log.i("wqtest","keyCode: " + keyCode);    if(warnopenOrclose && SystemProperties.get("sys.fangchai.tigger","0").equals("1")){        if(keyCode == KeyEvent.KEYCODE_MENU||keyCode == KeyEvent.KEYCODE_HOME || keyCode == KeyEvent.KEYCODE_BACK){            return -1;        }    }
    if(keyCode == KeyEvent.KEYCODE_VOLUME_DOWN){    String title = win.getAttrs().packageName;        if (title != null && (title.equals("com.topwise.pinpadservice"))){            return -1;        }    }}
原创粉丝点击