Android 关机弹出选择菜单的深入解析

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

本文简单介绍一下怎样定制关机界面。

我的目标是长按Power键,将会关机,弹出“设备将要关机”选择对话框。如果可以选择“是”关机,和“否”返回系统。

弹出对话框的代码位于:

frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.java

显示对话框的代码如下:

复制代码 代码如下:

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方法中,有如下代码:

复制代码 代码如下:

java代码:

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的代码,最终代码如下:

复制代码 代码如下:

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);

}

};

时间: 2024-10-24 18:44:24

Android 关机弹出选择菜单的深入解析的相关文章

仿智联招聘上弹出选择菜单效果

预览效果时左下角会提示错误,而且看不到效果,刷新一下就可以看到效果了:当然,在实际使用中,不会出现这样的问题. 职位类别 职位名称 行业类别

Android组件实现长按弹出上下文菜单功能的方法

本文实例讲述了Android组件实现长按弹出上下文菜单功能的方法.分享给大家供大家参考,具体如下: 简单组件长按弹出上下文菜单总结 第一步:在程序合适位置给一个控件注册上下文菜单 组件可以是按钮,文本框,还可以是列表条目,下以listView列表为例 ListView contentList=(ListView) findViewById(R.id.blackname_manager_listV); contentList.setAdapter(mListAdapter); registerFo

Android PopupMenu弹出菜单的实现

Android PopupMenu弹出菜单的实现 (1)布局文件:用于弹出菜单的处罚button: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout

在网页中实现像VB的日期控件那样的组件,一点击就弹出日历菜单。。。。(原创!)

在网页中实现像VB的日期控件那样的组件,一点击就弹出日历菜单....(原创!) 作者: 小白 点击链接查看作者详细信息 <HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE>在网页上直接调用控件选择时间的演示效果</TITLE><SCRIPT LANGUAGE=javascript><

android-Android 点击一个区域弹出选择日期

问题描述 Android 点击一个区域弹出选择日期 安卓开发中,怎么做到点击一个区域,然后弹出选择出生日期,麻烦大神写的详细点,包括.xml文件和 java文件.谢谢好心人! 解决方案 java文件 public class DialogTest extends Activity { private int mYear, mMonth, mDay; TextView date; @Override protected void onCreate(Bundle savedInstanceState

Windows 8下如何修改桌面右击鼠标弹出的菜单位置

在Windows 8操作系统中,在桌面空白处单击鼠标右键,弹出的菜单位置有的在鼠标左侧,有的在鼠标的右侧.如图: 这是由于Windows 8在设计时,考虑了对于触摸屏的支持,如果用右手操作,弹出菜单在箭头右侧,那么菜单的内容可能被手指遮住,不方便查看,因此将菜单显示在箭头左侧.考虑到使用人的用手的习惯不同,可以通过设置来改变弹出菜单位置. 操作步骤: 1. 按"Windows徽标键+R键"弹出运行命令窗口: 2. 输入:shell:::{80F3F1D5-FECA-45F3-BC32-

Win10下鼠标右键弹出的菜单跑到左边了

win10默认已经改变了鼠标右键弹出的菜单的位置了,我们可以通过系统设置来改变它的默认设置,具体如下. 1.按WIN+R组合键调出运行,输入shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E} ,回车: 2.在弹出的对话框中,选择"其他"选项卡,可以选择"惯用左手"即可.

单击输入框弹出选择框效果js脚本

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>实用的单击输入框弹出选择框效果 http://w

JS+CSS实现实用的单击输入框弹出选择框的方法

 这篇文章主要介绍了JS+CSS实现实用的单击输入框弹出选择框的方法,实例分析了javascript操作select及button的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了JS+CSS实现实用的单击输入框弹出选择框的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.o