当前位置:   article > 正文

长按endcall键(power)作为app_switch任务键,按下即生效而非抬起_python keycode_app_switch

python keycode_app_switch

PhoneWindowManager.java

 case KeyEvent.KEYCODE_ENDCALL: {
  
                if("com.freeme.factory.input.KeyboardTest".equals(getCurrentActivityName())){
                    break;
                } else if (getCurrentActivityName().contains("com.freeme.factory")) {
                    return 0;
                }
 

                    result &= ~ACTION_PASS_TO_USER;//1
                    if (down) {
                        interceptPowerKeyDown(event, interactiveAndOn);//*/on off screen
                        interceptFn3KeyDown(false);//*/add long press 1
                        TelecomManager telecomManager = getTelecommService();
                        boolean hungUp = false;
                        if (telecomManager != null) {
                            hungUp = telecomManager.endCall();
                        }
                        if (interactive && !hungUp) {
                            mEndCallKeyHandled = false;
                            mDownTime = event.getEventTime();
                        } else {
                            mEndCallKeyHandled = true;
                        }
                    } else {
                      interceptPowerKeyUp(event, canceled);
                      interceptFn3KeyUp(true);//*/addlong press  2
                       long upTime=event.getEventTime();
                        if (!mEndCallKeyHandled) {
                           if(upTime -mDownTime < 1000){
                           Instrumentation inst = new Instrumentation();
                           inst.sendKeyDownUpSync(KeyEvent.KEYCODE_POWER);
                           }
                   
                        
                        }
                    }
                  //*/

                break;
            }

长按走KEYCODE_APP_SWITCH,在按下的时候就执行,而非抬起的时候才执行

写在拦截方法外围即可:

//*/
    boolean mFn3KeyHandled;
    private final Runnable mFn3LongPress = new Runnable() {
        @Override
        public void run() {
             Instrumentation inst = new Instrumentation();
             inst.sendKeyDownUpSync(KeyEvent.KEYCODE_APP_SWITCH);
             android.util.Log.d("TOP", "================ KEYCODE_APP_SWITCH ==================");
             mFn3KeyHandled = true;
        }
    };
    private void interceptFn3KeyDown(boolean handled) {
        Log.d(TAG, "interceptFn3KeyDown, handled = " + handled);
        mFn3KeyHandled = handled;
        if (!mFn3KeyHandled) {
            mHandler.postDelayed(mFn3LongPress, 1000);
        }
    }
    private boolean interceptFn3KeyUp(boolean canceled) {
        if (!mFn3KeyHandled) {
            mHandler.removeCallbacks(mFn3LongPress);
            return !canceled;
        }
        return false;
    }
    //*/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56431
推荐阅读
相关标签
  

闽ICP备14008679号