工作使用到,做备份
删除fragment
文件:Mainfest.xml 删除对应的<header />
setting.java 删除SETTINGS_FOR_RESTRICTED【】数组中对应的id
辅助功能里关闭自动旋转屏幕
文件:AccessibilitySettings.java, onCreate()里, flag的值设为0.
int flag =Settings.System.getInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0);
Settings.System.putInt(context.getContentResolver(),Settings.System.ACCELEROMETER_ROTATION,flag=0);
电源键添加重启选项
文件:1.frameworks/base/core/res/res/values-zh-rCN/strings.xml
2.frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java
3.frameworks/base/core/java/android/view/WindowManagerPolicy.java
4.frameworks/base/services/java/com/android/server/wm/WindowManagerService.java
5.frameworks/base/services/java/com/android/server/power/ShutdownThread.java
6.frameworks/base/api/current.txt
7.frameworks/base/core/res/res/values/public.xml
1. 添加中文资源文件
2.添加item
mItems.add(
new SinglePressAction(
com.android.internal.R.drawable.ic_lock_reboot,
R.string.global_action_reboot) {
public void onPress() {
// shutdown by making sure radio and power are handled accordingly.
mWindowManagerFuncs.reboot(true);
}
public boolean onLongPress() {
return true;
}
public boolean showDuringKeyguard() {
return true;
}
public boolean showBeforeProvisioning() {
return true;
}
}); // add end
3. 添加重启方法
public void reboot(boolean confirm);
4. 实现reboot的方法
//add start 添加从其方法
public void reboot(boolean confirm) {
ShutdownThread.reboot(mContext,"", confirm);
}
5. 重启方法线程调用实现
static void shutdownInner(final Context context, boolean confirm) {
final int resourceId = mRebootSafeMode ----去掉final
bConfirmForAnimation = confirm;
final int longPressBehavior = context.getResources().getInteger(
com.android.internal.R.integer.config_longPressOnPowerBehavior);
int resourceId = mRebootSafeMode // -----------modify ------delete final
? com.android.internal.R.string.reboot_safemode_confirm
: (longPressBehavior == 2
? com.android.internal.R.string.shutdown_confirm_question
: com.android.internal.R.string.shutdown_confirm);
Log.d(TAG, "Notifying thread to start shutdown longPressBehavior=" + longPressBehavior);
if(mReboot) resourceId = com.android.internal.R.string.reboot_confirm; //------------add this line
if (confirm) {
final CloseDialogReceiver closer = new CloseDialogReceiver(context);
if (sConfirmDialog != null) {
sConfirmDialog.dismiss();
}
//if (sConfirmDialog == null) { //-----------------------modify this line
Log.d(TAG, "PowerOff dialog doesn't exist. Create it first");
sConfirmDialog = new AlertDialog.Builder(context)
.setTitle(mRebootSafeMode
? com.android.internal.R.string.reboot_safemode_title
: (mReboot?com.android.internal.R.string.reboot:com.android.internal.R.string.power_off))//modify this line .添加判断重启
.setMessage(resourceId)
.setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
beginShutdownSequence(context);
if (sConfirmDialog != null) {
sConfirmDialog = null;
}
}
})
.setNegativeButton(com.android.internal.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
synchronized (sIsStartedGuard) {
sIsStarted = false;
}
if (sConfirmDialog != null) {
sConfirmDialog = null;
}
}
})
.create();
sConfirmDialog.setCancelable(false);//blocking back key
sConfirmDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
/*if (!context.getResources().getBoolean(
com.android.internal.R.bool.config_sf_slowBlur)) {
sConfirmDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
}*/
/* To fix video+UI+blur flick issue */
sConfirmDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
// } //-------------------modify this line
closer.dialog = sConfirmDialog;
sConfirmDialog.setOnDismissListener(closer);
if (!sConfirmDialog.isShowing()) {
sConfirmDialog.show();
}
} else {
beginShutdownSequence(context);
}
}
}
6. 添加新的API接口
field public static final int ic_lock_reboot = 17301662; // 0x108009e
7.对用到的资源进行申明
<public type="drawable" name="ic_lock_reboot" id="0x0108009e" />
添加重新启动的图标 分别适应 高清 高 中 低 4 种不同的分辨率 路径如下
frameworks/base/core/res/res/drawable-hdpi/ic_lock_reboot.png
frameworks/base/core/res/res/drawable-ldpi/ic_lock_reboot.png
frameworks/base/core/res/res/drawable-mdpi/ic_lock_reboot.png
/frameworks/base/core/res/res/drawable-xhdpi/ic_lock_reboot.png
图标如下:
参考:http://blog.youkuaiyun.com/wjky2014/article/details/24123533