android的系统不能像Nokia一样,长按住power键会自动关机,还得自己去选择关机选项,然后再确定才关机。这样有时会多些不方便,于是我对源代码进行了小改动,使得长按power键弹出选项框后继续按住三秒即可自动关机。具体步骤如下:
一、打开android源码中的frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java文件
一、打开android源码中的frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java文件
二、参照mPowerLongPress创建mPowerLongPress2线程,代码如下
Runnable mPowerLongPress2 = new Runnable() {
public void run() {
mShouldTurnOffOnKeyUp = false;
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false);
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS);
ShutdownThread.shutdown(mContext,false);//第二个选项为flase时直接关机,为true时则弹出是否关机对话框
}
};
三、在代码
if (keyCode == KeyEvent.KEYCODE_ENDCALL
|| keyCode == KeyEvent.KEYCODE_POWER)
之前添加
if(keyCode == KeyEvent.KEYCODE_POWER)
if(down)
{
mShouldTurnOffOnKeyUp = true;
mHandler.postDelayed(mPowerLongPress2,3000);//延时3秒后执行mPowerLongPress2线程
}
else{
mHandler.removeCallbacks(mPowerLongPress2);
}
添加上两段代码后,回到源代码根目录下,执行. build/envsetup.sh后执行mmm frameworks/base/policy 或者到frameworks/base/policy目录下执行mm,之后执行./mkimage.sh。把生成system.img烧到板子上,开启板子长按power键,弹出
继续按住3秒后,自动关机。