在关机界面添加重启菜单功能
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
长按power键,在弹出来的Global actions对话框中增加重启菜单,效果图如下:
[SOLUTION]
如果需要添加重新启动菜单做重启手机的动作,可以参考如下步骤修改实现:
1、 在alps\php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\base\core\res\res\values\strings.xml 中添加标签:
<string name="zzzzz_global_action_power_reboot">Reboot</string>
用来显示重新启动菜单项的字符串资源,如果需要添加其他语言的标识,请在其他可替换资源的
res folder下添加对应资源。
请注意,为了保证资源文件能够被编译进去,请同步将此资源添加到symbols.xml中。
2、 在alps\frameworks\base\core\res\res\drawable-hdpi中添加图标:
zzzzz_ic_lock_power_reboot.png
3、 在
alps\frameworks\base\policy\src\com\android\internal\policy\impl\GlobalAct
ions.java
文件中的createDialog()函数中添加:
Private GlobalActionsDialog createDialog(){
……
mItEMS = new ArrayList<Action>();
// first: power off
mItems.add(……);
/////////////////////////////////////////////Added for reboot items start
mItems.add(
new SinglePressAction(
com.android.internal.R. zzzzz_ic_lock_power_reboot,
R.string.zzzzz_global_action_power_reboot) {
public void onPress() {
mWindowManagerFuncs.reboot(true);
}
public boolean onLongPress() {
mWindowManagerFuncs.rebootSafeMode(true);
return true;
}
public boolean showDuringKeyguard() {
return true;
}
public boolean showBeforeProvisioning() {
return true;
}
});
/////////////////////////added end
// next: airplane mode
mItems.add(mAirplaneModeOn);
……
}
4、 在frameworks\base\core\java\android\view\WindowManagerPolicy.java文件中
,找到WindowManagerFuncs这个interface的定义,增加如下function的声明:
public interface WindowManagerFuncs {
public void reboot(boolean confirm);
}
5、 在
Frameworks\base\services\java\com\android\server\wm\WindowManagerService.j
ava中,因为其实现了WindowManagerFuncs这个接口,需要在该文件中添加reboot()函数的实
现体。
找到shutdown()函数,在其后面添加reboot()函数,函数内容如下:
// Called by window manager policy. Not exposed externally.
@Override
public void reboot(boolean confirm) {
ShutdownThread.reboot(mContext, confirm);
}
长按power键,在弹出来的Global actions对话框中增加重启菜单,效果图如下:
[SOLUTION]
如果需要添加重新启动菜单做重启手机的动作,可以参考如下步骤修改实现:
1、 在alps\php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\base\core\res\res\values\strings.xml 中添加标签:
<string name="zzzzz_global_action_power_reboot">Reboot</string>
用来显示重新启动菜单项的字符串资源,如果需要添加其他语言的标识,请在其他可替换资源的
res folder下添加对应资源。
请注意,为了保证资源文件能够被编译进去,请同步将此资源添加到symbols.xml中。
2、 在alps\frameworks\base\core\res\res\drawable-hdpi中添加图标:
zzzzz_ic_lock_power_reboot.png
3、 在
alps\frameworks\base\policy\src\com\android\internal\policy\impl\GlobalAct
ions.java
文件中的createDialog()函数中添加:
Private GlobalActionsDialog createDialog(){
……
mItEMS = new ArrayList<Action>();
// first: power off
mItems.add(……);
/////////////////////////////////////////////Added for reboot items start
mItems.add(
new SinglePressAction(
com.android.internal.R. zzzzz_ic_lock_power_reboot,
R.string.zzzzz_global_action_power_reboot) {
public void onPress() {
mWindowManagerFuncs.reboot(true);
}
public boolean onLongPress() {
mWindowManagerFuncs.rebootSafeMode(true);
return true;
}
public boolean showDuringKeyguard() {
return true;
}
public boolean showBeforeProvisioning() {
return true;
}
});
/////////////////////////added end
// next: airplane mode
mItems.add(mAirplaneModeOn);
……
}
4、 在frameworks\base\core\java\android\view\WindowManagerPolicy.java文件中
,找到WindowManagerFuncs这个interface的定义,增加如下function的声明:
public interface WindowManagerFuncs {
public void reboot(boolean confirm);
}
5、 在
Frameworks\base\services\java\com\android\server\wm\WindowManagerService.j
ava中,因为其实现了WindowManagerFuncs这个接口,需要在该文件中添加reboot()函数的实
现体。
找到shutdown()函数,在其后面添加reboot()函数,函数内容如下:
// Called by window manager policy. Not exposed externally.
@Override
public void reboot(boolean confirm) {
ShutdownThread.reboot(mContext, confirm);
}