事件分发前的拦截过程

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则说明事件被放行
@Override
public 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;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章