事件分發前的攔截過程

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