Android 关机弹出菜单

摘要:
本文简要介绍了如何自定义关机界面。我的目标是长时间按住电源键以关闭设备。弹出“设备将关闭”选择对话框。关机代码在哪里?

特别推荐:

移动资讯——<<我是开发者>>个人专访

关于android远程登录源码解析

Android源码之热血足球+PPT讲解

在Android系统中,长按Power键默认会弹出对话框让你选择“飞行模式”,“静音”,“关机”等功能。这些功能对于手机非常适用,但是对于机顶盒产品就没有什么必要了。本文简单介绍一下怎样定制关机界面。

       我的目标是长按Power键,将会关机,弹出“设备将要关机”选择对话框。如果可以选择“是”关机,和“否”返回系统。
       弹出对话框的代码位于:
frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java显示对话框的代码如下:

Runnable mPowerLongPress = new Runnable() { 
public void run() { 
mShouldTurnOffOnKeyUp = false; 
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false); sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS); showGlobalActionsDialog(); 
} 
};
 

 调用showGlobalActionsDialog方法将会显示上面提到的显示“飞行模式”,“静音”,“关机”,选项的对话框。
       因为我的目标是不要这个节目,把这行代码注释掉,替换成关机的代码就可以了。那么关机的代码在哪里呢?这段代码位于:
frameworks\policies\base\phone\com\android\internal\policy\impl\GlobalActions.java该文件的createDialog方法中,有如下代码:

mItems = Lists.newArrayList( 
// 静音模式mSilentModeToggle, 
// mAirplaneModeOn飞机模式下, 
// last: power off new SinglePressAction( com.android.internal.R.drawable.ic_lock_power_off, R.string.global_action_power_off) { 
public void onPress() { 
// shutdown by making sure radio and power are handled accordingly. 
ShutdownThread.shutdown(mContext, true); 
} 
public boolean showDuringKeyguard() { 
return true; 
} 
public boolean showBeforeProvisioning() { 
return true 
} 
});
 

从代码中我们可以看出,如果选择上述对话框的“关机”选项之后,将会调用ShutdownThread的shutdown方法来关机。shutdown方法的第二个参数标识是否弹出询问对话框。
       我们可以修改PhoneWindowManager.java的代码,最终代码如下:

Runnable mPowerLongPress = new Runnable() { 
public void run() { 
mShouldTurnOffOnKeyUp = false; 
performHapticFeedbackLw(null, HapticFeedbackConstants.LONG_PRESS, false); 
sendCloseSystemWindows(SYSTEM_DIALOG_REASON_GLOBAL_ACTIONS); 
//showGlobalActionsDialog(); 
ShutdownThread.shutdown(mContext, false); 
} 

};
 

免责声明:文章转载自《Android 关机弹出菜单》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[RK3399] 修改移动网络默认为4GCentos7 aspose.words使用Linuxs word转pdf 中文字体异常下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

tomcat无法正常关闭问题分析及解决

问题描述 通常,我们都会直接使用tomcat提供的脚本执行关闭操作,如下: # sh bin/shutdown.sh Using CATALINA_BASE: /usr/local/apache-tomcat-7.0.59 Using CATALINA_HOME: /usr/local/apache-tomcat-7.0.59 Using CA...

【转】高性能网络编程4--TCP连接的关闭

TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。 为方便阅读,我们可以带着以下5个问题来阅读本文: 1、当socket被多进程或者多线程共享时,关闭连接时有何区别? 2、关连接时,若连接上有来自对端的还未处理的消息,会怎么处理? 3、关连接时,若连接上有本进程待发送却未来得及发送出的消息,又会怎么处理?...

批量关闭远程计算机

批量关闭远程计算机━━━━━━━━━━━━━━━━━━━━━━━━━━ Windows XP操作系统中带有一个名为shutdown的功能强大的关机工具。利用它不但可以完成Windows图形操作界面下可以完成的功能:注销用户、关闭或重 启计算机,更重要的是可以用它来定时关机、远程关机。这可是在Windows图形操作界面下完成不了的功能!如果某天您的计算机在下...

使用shutdown命令实现局域网内远程关机、重启整蛊他人

用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/f]    [/m \computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]     没有参数   显示帮助。这与键入 /? 是一样的。    /? ...

Tomcat多实例集群架构 安全优化和性能优化

Tomcat多实例 复制tomcat目录 #将tar解压出来的tomcat复制出两个实例来cp -a /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat1 cp -a /usr/local/apache-tomcat-8.0.46 /usr/local/tomcat2 修改多实例配置文件 #创建多实例的网页根...

Tomcat配置多实例:centos和winserver环境

CentOS:配置多Tomcat: 1、下载:# wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-6/v6.0.44/bin/apache-tomcat-6.0.44.tar.gz 2、解压:# tar -zxv -f apache-tomcat-6.0.44.tar.gz 3、复制三份:# cp -...