android 5.1 添加reboot 飞行模式 silent
2015-07-30 16:32
399 查看
1, 添加reboot
添加reboot可以仿照power off 来写
首先涉及到的几个java文件,文件不多,大家可以先看一下
frameworks/base/core/java/android/view/WindowManagerPolicy.java
frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java
frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
WindowManagerPolicy.java 文件可以模仿关机写一个接口
public void shutdown(boolean confirm);
public void reboot(boolean confirm);
public void rebootSafeMode(boolean confirm);
GlobalActions.java 文件修改长按power键弹出框的显示列表 直接上代码
private static final String GLOBAL_ACTION_KEY_POWER = "power";
+ private static final String GLOBAL_ACTION_KEY_REBOOT = "reboot";
private static final String GLOBAL_ACTION_KEY_AIRPLANE = "airplane";
private static final String GLOBAL_ACTION_KEY_BUGREPORT = "bugreport";
private static final String GLOBAL_ACTION_KEY_SILENT = "silent";
添加重启选项
if (GLOBAL_ACTION_KEY_POWER.equals(actionKey)) {
mItems.add(new PowerAction());
+ } else if(GLOBAL_ACTION_KEY_REBOOT.equals(actionKey)){
+ mItems.add(new RebootAction());
+ } else if (GLOBAL_ACTION_KEY_AIRPLANE.equals(actionKey)) {
mItems.add(mAirplaneModeOn);
} else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) {
if (Settings.Global.getInt(mContext.getContentResolver(),
+ private final class RebootAction extends SinglePressAction {
+ private RebootAction() {
+ super(com.android.internal.R.drawable.ic_lock_power_reboot,
+ R.string.global_action_power_reboot);
+ }
+
+ @Override
+ public boolean showDuringKeyguard() {
+ return true;
+ }
+
+ @Override
+ public boolean showBeforeProvisioning() {
+ return true;
+ }
+ @Override
+ public void onPress() {
+ // reboot by making sure radio and power are handled accordingly.
+ mWindowManagerFuncs.reboot(false /* confirm */);
+ }
+ }
显示飞行模式
private void onAirplaneModeChanged() {
// Let the service state callbacks handle the state.
+ if (!mHasTelephony) return;
boolean airplaneModeOn = Settings.Global.getInt(
mContext.getContentResolver(),
这里的常量字符是和config.xml里面对应的,如果config.xml里面配置了相应的字符串,列表就会显示对应的项
<string-array translatable="false" name="config_globalActionsList">
<item>power</item>
+ <item>reboot</item>
+ <item>airplane</item>
<item>bugreport</item>
<item>users</item>
</string-array>
ShutdownThread.java 文件修改的是点击关机或重启的时候显示字串
final int resourceId = mRebootSafeMode
? com.android.internal.R.string.reboot_safemode_confirm
: (longPressBehavior == 2
+ ? (mReboot ? com.android.internal.R.string.reboot_confirm_question : com.android.internal.R.string.shutdown_confirm_question)
+ : (mReboot ? com.android.internal.R.string.reboot_confirm : com.android.internal.R.string.shutdown_confirm));
Log.d(TAG, "Notifying thread to start shutdown longPressBehavior=" + longPressBehavior);
@@ -136,10 +137,13 @@ public final class ShutdownThread extends Thread {
if (sConfirmDialog != null) {
sConfirmDialog.dismiss();
}
sConfirmDialog = new AlertDialog.Builder(context)
.setTitle(mRebootSafeMode
? com.android.internal.R.string.reboot_safemode_title
+ : (mReboot
+ ? com.android.internal.R.string.reboot_title
+ :com.android.internal.R.string.power_off))
.setMessage(resourceId)
.setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -220,8 +224,8 @@ public final class ShutdownThread extends Thread {
// throw up an indeterminate system dialog to indicate radio is
// shutting down.
ProgressDialog pd = new ProgressDialog(context);
+ pd.setTitle(context.getText(mReboot ? com.android.internal.R.string.reboot_title : com.android.internal.R.string.power_off));
+ pd.setMessage(context.getText(mReboot ? com.android.internal.R.string.reboot_progress : com.android.internal.R.string.shutdown_progress));
pd.setIndeterminate(true);
pd.setCancelable(false);
pd.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
WindowManagerService.java 修改
+ @Override
+ public void reboot(boolean confirm) {
+ ShutdownThread.reboot(mContext, null, confirm);
+ }
+
添加reboot可以仿照power off 来写
首先涉及到的几个java文件,文件不多,大家可以先看一下
frameworks/base/core/java/android/view/WindowManagerPolicy.java
frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java
frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java
frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java
WindowManagerPolicy.java 文件可以模仿关机写一个接口
public void shutdown(boolean confirm);
public void reboot(boolean confirm);
public void rebootSafeMode(boolean confirm);
GlobalActions.java 文件修改长按power键弹出框的显示列表 直接上代码
private static final String GLOBAL_ACTION_KEY_POWER = "power";
+ private static final String GLOBAL_ACTION_KEY_REBOOT = "reboot";
private static final String GLOBAL_ACTION_KEY_AIRPLANE = "airplane";
private static final String GLOBAL_ACTION_KEY_BUGREPORT = "bugreport";
private static final String GLOBAL_ACTION_KEY_SILENT = "silent";
添加重启选项
if (GLOBAL_ACTION_KEY_POWER.equals(actionKey)) {
mItems.add(new PowerAction());
+ } else if(GLOBAL_ACTION_KEY_REBOOT.equals(actionKey)){
+ mItems.add(new RebootAction());
+ } else if (GLOBAL_ACTION_KEY_AIRPLANE.equals(actionKey)) {
mItems.add(mAirplaneModeOn);
} else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) {
if (Settings.Global.getInt(mContext.getContentResolver(),
+ private final class RebootAction extends SinglePressAction {
+ private RebootAction() {
+ super(com.android.internal.R.drawable.ic_lock_power_reboot,
+ R.string.global_action_power_reboot);
+ }
+
+ @Override
+ public boolean showDuringKeyguard() {
+ return true;
+ }
+
+ @Override
+ public boolean showBeforeProvisioning() {
+ return true;
+ }
+ @Override
+ public void onPress() {
+ // reboot by making sure radio and power are handled accordingly.
+ mWindowManagerFuncs.reboot(false /* confirm */);
+ }
+ }
显示飞行模式
private void onAirplaneModeChanged() {
// Let the service state callbacks handle the state.
+ if (!mHasTelephony) return;
boolean airplaneModeOn = Settings.Global.getInt(
mContext.getContentResolver(),
这里的常量字符是和config.xml里面对应的,如果config.xml里面配置了相应的字符串,列表就会显示对应的项
<string-array translatable="false" name="config_globalActionsList">
<item>power</item>
+ <item>reboot</item>
+ <item>airplane</item>
<item>bugreport</item>
<item>users</item>
</string-array>
ShutdownThread.java 文件修改的是点击关机或重启的时候显示字串
final int resourceId = mRebootSafeMode
? com.android.internal.R.string.reboot_safemode_confirm
: (longPressBehavior == 2
+ ? (mReboot ? com.android.internal.R.string.reboot_confirm_question : com.android.internal.R.string.shutdown_confirm_question)
+ : (mReboot ? com.android.internal.R.string.reboot_confirm : com.android.internal.R.string.shutdown_confirm));
Log.d(TAG, "Notifying thread to start shutdown longPressBehavior=" + longPressBehavior);
@@ -136,10 +137,13 @@ public final class ShutdownThread extends Thread {
if (sConfirmDialog != null) {
sConfirmDialog.dismiss();
}
sConfirmDialog = new AlertDialog.Builder(context)
.setTitle(mRebootSafeMode
? com.android.internal.R.string.reboot_safemode_title
+ : (mReboot
+ ? com.android.internal.R.string.reboot_title
+ :com.android.internal.R.string.power_off))
.setMessage(resourceId)
.setPositiveButton(com.android.internal.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
@@ -220,8 +224,8 @@ public final class ShutdownThread extends Thread {
// throw up an indeterminate system dialog to indicate radio is
// shutting down.
ProgressDialog pd = new ProgressDialog(context);
+ pd.setTitle(context.getText(mReboot ? com.android.internal.R.string.reboot_title : com.android.internal.R.string.power_off));
+ pd.setMessage(context.getText(mReboot ? com.android.internal.R.string.reboot_progress : com.android.internal.R.string.shutdown_progress));
pd.setIndeterminate(true);
pd.setCancelable(false);
pd.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
WindowManagerService.java 修改
+ @Override
+ public void reboot(boolean confirm) {
+ ShutdownThread.reboot(mContext, null, confirm);
+ }
+
相关文章推荐
- Android.mk的用法|静态库|动态库
- 详解Android中的Toast源码
- Android 缓存处理
- Android相对布局的属性
- AndroidMaterialDesign动画之Animate View State Changes
- 【android】利用service监听来电或来信息
- android:服务器与客户端的双向开发
- android 9-Patch图片右边下边效果
- Windows配置Android开发环境全部资源下载及配置教程
- Android地图添加标记和文字【代码片段】
- Acitivty最佳实践1----知晓当前是哪一个活动正在运行
- 编译android源码apk是否生成odex方法
- 详解Java编程中的反射在Android开发中的应用
- android用户界面屏幕分辨率参考
- android 剪裁图片
- android 读取原始(Raw)资源 作为数据库文件
- Android应用插件式开发解决方法
- 使用android-junit-report.jar导出单元测试报告
- Android的按钮单击事件及监听器的实现方式
- 无root手机版抓android包工具,超好用