android源码修改,实现长按电源键直接关机

Posted 苏小七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android源码修改,实现长按电源键直接关机相关的知识,希望对你有一定的参考价值。

版本:android 4.4.2

源文件路径:frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java

修改下面的代码:

private final Runnable mPowerLongPress = new Runnable() {
        @Override
        public void run() {
            // The context isn‘t read
            if (mLongPressOnPowerBehavior < 0) {
                mLongPressOnPowerBehavior = mContext.getResources().getInteger(
                        com.android.internal.R.integer.config_longPressOnPowerBehavior);
            }
            int resolvedBehavior = mLongPressOnPowerBehavior;
            if (FactoryTest.isLongPressOnPowerOffEnabled()) {
                resolvedBehavior = LONG_PRESS_POWER_SHUT_OFF_NO_CONFIRM;
            }
/*
            switch (resolvedBehavior) {
            case LONG_PRESS_POWER_NOTHING:
                break;
            case LONG_PRESS_POWER_GLOBAL_ACTIONS:
                mPowerKeyHandled = true;
                if (!performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false)) {
                    performAuditoryFeedbackForAccessibilityIfNeed();
                }
                sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
                showGlobalActionsDialog();
                break;
            case LONG_PRESS_POWER_SHUT_OFF:
            case LONG_PRESS_POWER_SHUT_OFF_NO_CONFIRM:
                mPowerKeyHandled = true;
                performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
                sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
                mWindowManagerFuncs.shutdown(resolvedBehavior == LONG_PRESS_POWER_SHUT_OFF);
                break;
            }
*/
            //注释掉上面的代码后,增加下面的代码
            mPowerKeyHandled = true;
            performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
            sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
            mWindowManagerFuncs.shutdown(false);//这里false代表不显示关机提示框,true未显示关机提示框
        }
    };

 修改后,长按关机键会直接关机。

以上是关于android源码修改,实现长按电源键直接关机的主要内容,如果未能解决你的问题,请参考以下文章

9按android手机的电源键来黑屏和点亮屏幕,可以对app的功能产生影响,这里应用的技术是

深入解析Android关机

安卓系统2.3.4高仿苹果4s电源键长会关机,来电时挂不掉,电源键长按显示移动滑块来关机继续长按会关机

求代码,Android系统长按如何禁止出现复制链接、打开链接菜单

vbs长按某键

Android测试随笔模拟长按电源键