Android13 禁用、启用HOME键、返回键

打开

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

1、查找到 public long interceptKeyBeforeDispatching(IBinder focusedToken, KeyEvent event,
            int policyFlags)方法,在switch里面处理相应键值。

2、增加SystemProperties:   persist.sys.back、persist.sys.home,通过系统属性切换,禁用、放开HOME键、返回键。

    @Override
    public long interceptKeyBeforeDispatching(IBinder focusedToken, KeyEvent event,
            int policyFlags) {
	    .............................       
        final long key_consumed = -1;
        final long key_not_consumed = 0;
       ................................      

        switch(keyCode) {
            //add code KEYCODE_BACK
            case KeyEvent.KEYCODE_BACK:                
                if(!SystemProperties.getBoolean("persist.sys.back",false)){
                    Log.d(TAG,"forbiden interceptKeyBeforeDispatching back");
                    return key_consumed;
                }
                break;  
            //add end              
            case KeyEvent.KEYCODE_HOME:
                // First we always handle the home key here, so applications
                // can never break it, although if keyguard is on, we do let
                // it handle it, because that gives us the correct 5 second
                // timeout.
                //add code KEYCODE_HOME
                if(!SystemProperties.getBoolean("persist.sys.home",false)){
                    Log.e(TAG,"forbiden interceptKeyBeforeDispatching home");
                    return key_consumed;
                }
                //add end
               
                DisplayHomeButtonHandler handler = mDisplayHomeButtonHandlers.get(displayId);
                if (handler == null) {
                    handler = new DisplayHomeButtonHandler(displayId);
                    mDisplayHomeButtonHandlers.put(displayId, handler);
                }
                return handler.handleHomeButton(focusedToken, event);
            ....................
        }

       .....................
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值