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的功能产生影响,这里应用的技术是
安卓系统2.3.4高仿苹果4s电源键长会关机,来电时挂不掉,电源键长按显示移动滑块来关机继续长按会关机