屏蔽Home键
C#屏蔽windows功能键

C#屏蔽windows功能键对于触屏的软件来说,我们调出系统键盘以后,我们不想⽤户回到桌⾯,这时候我们就需要屏蔽windows键,#region屏蔽WIN功能键public delegate int HookProc(int nCode, int wParam, IntPtr lParam);private static int hHook = 0;public const int WH_KEYBOARD_LL = 13;//LowLevel键盘截获,如果是WH_KEYBOARD=2,并不能对系统键盘截取,会在你截取之前获得键盘。
private static HookProc KeyBoardHookProcedure;//键盘Hook结构函数[StructLayout(LayoutKind.Sequential)]public class KeyBoardHookStruct{public int vkCode;public int scanCode;public int flags;public int time;public int dwExtraInfo;}//设置钩⼦[DllImport("user32.dll")]public static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hInstance, int threadId);[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]//抽掉钩⼦public static extern bool UnhookWindowsHookEx(int idHook);[DllImport("user32.dll")]//调⽤下⼀个钩⼦public static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr lParam);[DllImport("kernel32.dll")]public static extern int GetCurrentThreadId();[DllImport("kernel32.dll")]public static extern IntPtr GetModuleHandle(string name);public static void Hook_Start(){// 安装键盘钩⼦if (hHook == 0){KeyBoardHookProcedure = new HookProc(KeyBoardHookProc);hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyBoardHookProcedure,GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0);//如果设置钩⼦失败.if (hHook == 0){Hook_Clear();}}}//取消钩⼦事件public static void Hook_Clear(){bool retKeyboard = true;if (hHook != 0){retKeyboard = UnhookWindowsHookEx(hHook);hHook = 0;}//如果去掉钩⼦失败.if (!retKeyboard) throw new Exception("UnhookWindowsHookEx failed.");}//这⾥可以添加⾃⼰想要的信息处理private static int KeyBoardHookProc(int nCode, int wParam, IntPtr lParam){if (nCode >= 0){KeyBoardHookStruct kbh = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));if (kbh.vkCode == 91) // 截获左win(开始菜单键){return1;}if (kbh.vkCode == 92)// 截获右win{return1;}if (kbh.vkCode == (int)Keys.Escape && (int)Control.ModifierKeys == (int)Keys.Control) //截获Ctrl+Esc{return1;}if (kbh.vkCode == (int)Keys.F4 && (int)Control.ModifierKeys == (int)Keys.Alt) //截获alt+f4{return1;}if (kbh.vkCode == (int)Keys.Tab && (int)Control.ModifierKeys == (int)Keys.Alt) //截获alt+tab{return1;}if (kbh.vkCode == (int)Keys.Escape && (int)Control.ModifierKeys == (int)Keys.Control + (int)Keys.Shift) //截获Ctrl+Shift+Esc {return1;}if (kbh.vkCode == (int)Keys.Space && (int)Control.ModifierKeys == (int)Keys.Alt) //截获alt+空格{return1;}if (kbh.vkCode == 241) //截获F1{return1;}if ((int)Control.ModifierKeys == (int)Keys.Control + (int)Keys.Alt + (int)Keys.Delete) //截获Ctrl+Alt+Delete{return1;}if ((int)Control.ModifierKeys == (int)Keys.Control + (int)Keys.Shift) //截获Ctrl+Shift{return1;}if (kbh.vkCode == (int)Keys.Space && (int)Control.ModifierKeys == (int)Keys.Control + (int)Keys.Alt) //截获Ctrl+Alt+空格{return1;}}return CallNextHookEx(hHook, nCode, wParam, lParam);}public static void TaskMgrLocking(bool bLock){if (bLock){try{RegistryKey r = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true); r.SetValue("DisableTaskmgr", "1"); //屏蔽任务管理器}catch{RegistryKey r = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");r.SetValue("DisableTaskmgr", "0");}}else{Registry.CurrentUser.DeleteSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System");}}#endregion// 调⽤,这个需要放在主窗体的load⽅法中//private void Load(object sender, EventArgs e)//{// Hook_Start();//}//卸载private void FormClosing(object sender, FormClosingEventArgs e){Hook_Clear(); }View Code。
手机屏蔽室说明书

目录目录 (1)1、手机屏蔽室概况 (1)2、手机屏蔽室电动屏蔽门操作说明 (1)2.1键盘设置操作 (2)2.2开门 (2)2.3状态提示 (3)2.4故障维修 (3)3、手机屏蔽室室内接线说明 (4)4、注意事项 (5)1、手机屏蔽室概况信号屏蔽是利用金属板体制成六面体,将电磁波限制在一定的空间范围内使其场的能量从一面传到另一面受到很大的衰减。
屏蔽室就是利用其屏蔽的原理,用金属材料制成一个六面体房间,由于金属板对入射电磁波的吸收损耗、界面反射损耗和板内反射损耗,使其电磁波的能量大大的减弱,而使屏蔽室产生屏蔽作用。
由于屏蔽室通常有人员和设备在内工作,因此屏蔽室六面密闭的同时,需留有人员及设备进出的屏蔽门,通风波导窗,室内所需电源滤波器,信号光纤管等以及必备的室内装修,确保屏蔽室正常工作。
2、手机屏蔽室电动屏蔽门操作说明所有的操作,均应在门关闭状态下进行。
2.1键盘设置操作1.进入编程状态操作方法:01+编程密码+#(“+”不用输入,以下同),红灯亮,表示已进入编程状态,你可以操作以下功能。
2.修改编程密码必须在编程状态下进行,操作方法:01+新编程密码(4—8位)+#。
3.修改通用密码必须在编程状态下进行,操作方法:03+新通用密码(4—8位)+#。
4.修改/添加用户密码必须在编程状态下进行,操作方法:04+XX(用户号10-99)+密码(4—8位)+#。
5.删除一个用户密码必须在编程状态下进行,操作方法:05+ XX(用户号10-99)+#。
6.删除所有用户密码必须在编程状态下进行,操作方法:05+00+#。
7.删除一张开门卡必须在编程状态下进行,操作方法:06+XXXXXX(开门卡6位编号)+#。
注:所有按键均以“#”结束。
用“*”键修改。
2.2开门开门共有5种方式,下面一一叙述:1.“开门卡”开门刷“开门卡”,绿灯亮并“嘀”一声后,再“嘀”一声后,绿灯亮,此时开门。
如黄灯连续闪烁并伴有蜂鸣声,则卡无效(系统中没有此卡),无法开门。
Android的全局键(home键_长按耳机键)详解【android源码解析八】

下面我详细展开来说明一下:
一、先说Home键的实现的大致流程,即---->为什么点击Home键,都进入到launcher的待机界面;
(1)Home键的定义在
step1: frameworks/base/core/java/android/view/KeyEvent.java这个类中,在KeyEvent.java这个类中有个static的静态块:
step3: 而Home键对应的值如下:
/** Key code constant: Home key. * This key is handled by the framework and is never delivered to applications. */ public static final int KEYCODE_HOME = 3;
转载请标明出处:
(一)可以在frameworks层的KeyEvent.java这个类中定义一个值,在PhoneWindowManager.java这个类中做处理就可以了。(Home键就是这么实现的)。效果图如下:
(二)可以利用广播的形式,frameworks层PhoneWindow.java这个类的onKeyDown( )对这个实体键发广播,上层接受这个广播来处理也可以达到这个效果。耳机键就是利用广播来接受的。无论在哪个界面长按耳机键,都会进入到音乐的界面。(长按耳机键的)效果图如下:
/** {@inheritDoc} */ @Override public long interceptKeyBeforeDispatching(WindowState win, KeyEvent event, int policyFlags) { final boolean keyguardOn = keyguardOn()
平板电脑使用说明书

便携式7寸MID亲爱的用户:非常感谢您选购此款MID产品。
我们衷心希望您能从中获得长久的享受。
祝愿您从该产品中获得最好的多媒体体验!本手册中包含的所有信息在出版时都是正确的。
但由于我们不断对产品进行更新和改进,因此您设备上的软件、外观、功能可能与本手册中所描述的内容略有差别。
目 录1.基本功能 (4)1.1硬件配置 (4)1.2软件配置 (5)2.设备描述 (6)2.1 触摸屏和轨迹球 (6)2.2 Camera (6)2.3 Power键 (6)2.4 充电指示 (7)2.5 Menu键 (7)2.6 Home键 (7)2.7 Mic孔 (7)2.8 TF卡 (7)2.9 MiniUSB (7)2.10 复位钮 (7)2.11 耳机插座 (8)2.12 DC (8)3.首次使用 MID (8)3.1 电池管理及充电 (8)3.2 打开/关闭 MID (8)3.3 与PC连接 (9)4.设备操作界面 (9)4.1 主界面描述 (9)4.2 菜单界面描述 (10)4.3 状态栏描述 (11)4.4 使用触摸屏 (11)5.设备基本设置 (12)5.1 网络配置 (13)5.2 声音和显示 (14)5.3 安全性和位置 (15)5.4 应用程序 (15)5.5 SD卡和MID 存储 (16)5.6 日期和时间 (16)5.7 区域和文本 (16)5.8 触摸屏校准 (16)5.9 USB模式选择 (17)5.10 关于MID (17)6. MID 软件安装及管理 (17)6.1 APK安装器(应用程序安装工具) (17)6.2 资源管理器 (19)6.3 应用市场 (20)7. MID 软件应用与操作 (20)7.1 图片浏览 (20)7.2 音乐播放 (21)7.3 视频播放 (23)7.4 电子书 (24)7.5 将图片/音乐/视频等文件传输到 MID 设备 (24)7.6 网络浏览器 (24)7.7 电子邮件 (25)7.8 网络聊天 (25)7.9 Google Map (26)7.10日历 (27)7.11闹钟时钟 (27)8. MID 疑难解答 (27)注意事项本手册包含重要的安全措施和正确使用产品的信息,以避免事故发生,确信在使用该产品之前仔细阅读该手册。
android 4.0 屏蔽home键实现

android 4.0 屏蔽home键实现分类:Android 2012-05-01 18:14 115人阅读评论(0) 收藏举报最近研究锁屏,按照常规的方法,常规方法如下Java代码1.public void onAttachedToWindow()2.{3.this.getWindow().setType(youtParams.TYPE_KEYGUARD);4.super.onAttachedToWindow();5.}但是这个方法到了4.0的系统上就失效了,按home照样会返回桌面。
apktool了几个锁屏的软件之后发现其实现方法,即用WindowManager的addview方法将view加到窗口上,加上的时候将view的layoutparamas的type设为LayoutParams.TYPE_SYSTEM_ERROR,这个值sdk的解释为Java代码1.public static final int TYPE_SYSTEM_ERROR2.Since: API Level 13.Window type: internal system error windows, appear on top of everything they can.如果直接这样用会报错,还要在AndroidManifest.xml里面加上权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>,ok上完整代码,封装了一个类,其中Lock和hide方法实现锁屏和解锁。
Java代码1.public class LockLayer {2.private Activity mActivty;3.private WindowManager mWindowManager;4.private View mLockView;5.private LayoutParams mLockViewLayoutParams;6.7.public LockLayer(Activity act) {8. mActivty = act;9. init();10. }11.12.private void init(){13. mWindowManager = mActivty.getWindowManager();14. mLockViewLayoutParams = new LayoutParams();15. mLockViewLayoutParams.width = LayoutParams.MATCH_PARENT;16. mLockViewLayoutParams.height = LayoutParams.MATCH_PARENT;17.//实现关键18. mLockViewLayoutParams.type = LayoutParams.TYPE_SYSTEM_ERROR;19.//apktool value,这个值具体是哪个变量还请网友帮忙20. mLockViewLayoutParams.flags = 1280;21. }22.public void lock() {23.if(mLockView!=null){24. mWindowManager.addView(mLockView, mLockViewLayoutParams);25. }26. }27.public void unlock() {28.if(mWindowManager!=null){29. mWindowManager.removeView(mLockView);30. }31. }32.public void setLockView(View v){33. mLockView = v;34. }35.}使用方法如下Java代码1.public void onCreate(Bundle savedInstanceState) {2.super.onCreate(savedInstanceState);3. View lock = View.inflate(this, yout.main, null);4. LockLayer lockLayer = new LockLayer(this);5. lockLayer.setLockView(lock);6. lockLayer.lock();7. }ok,这时可以实现按home键不返回桌面的效果,其他的键需要用另外的代码实现,网上都有。
橘子GT6 独有的HOME键操作

橘子GT6 独有的HOME键操作锁屏状态下双击HOME键播放音乐----当你的橘子GT6在锁屏的情况下听歌,想要换另外一首歌或者是暂停歌曲播放,那么你可以直接双击HOME键,可对音乐播放进行下一首歌、上一首歌、音量调节、播放、暂停等操作!橘子GT6开机界面密码锁你,不要进入我的手机!橘子GT6为你提供更安全的保护,有了开机密码,就可以防止他人偷看你手机上的信息,窥伺你的私密!!(橘子GT6 默认关闭,启动步骤:“设置”—“通用”—“密码锁定”)橘子GT6数据全盘搜索可进行全盘(T卡)关键字搜索电子书,图片,视频,歌曲等,这样,就算你忘记资料存放在手机的具体位置,使用全盘搜索,输入关键字,立刻出现在你面前!!橘子GT6人性化电话拨打接听轻点电话图标,输入手机号码,你可以在橘子GT6电话拨打界面上看到原机手机号码分段的显示效果(同类手机独有!);在通话过程中,你可以对通话进行录音,当然你也可以进行背景通话----按HOME键最小化通话界面,进入手机菜单界面进行其他功能的操作,当需要进入到通话界面时,你可以轻点手机屏幕最上方绿条,即可调出界面。
当你接通电话手机靠近耳旁时光感通过距离判断会自动熄灭显示屏,避免因为你的耳朵靠住电容屏而误操作,当手机离开耳旁较远时光感会自动点亮显示屏,以便于你进行其他操作,并且起到通话中省电的作用;在锁屏状态下有来电时,你可以按HOME键进行接听,也可滑动接听;拒绝时,直接按一下开关机键即可!橘子GT6两种短信模式—放大镜、复制粘贴橘子GT6提供两种短信对话模式:一种是气泡式对话模式;一种是橘子GT6独创的【橘子GT6】phone模式;气泡式对话模式----让你体验原机那种面对面的对话,全局清晰,简单直接;【橘子GT6】phone模式----键盘可横屏,短信内容可缩放,更方便用户整体、清晰的浏览信息内容。
支持多种输入法及多国语言:手写,智能拼音,英文,数字,标点等输入法,当然也支持繁体中文(港澳台)、阿拉伯、波斯、土耳其、泰语、印尼、越南、俄、法、德、西班牙、葡萄牙、马来西亚等多国语言;橘子GT6更有其强大独创的,支持全机的复制、粘贴、剪切功能以及放大镜功能,这是橘子GT6在同类机器绝无仅有的!短信内容的电话号码直接保存。
Android监听和屏蔽home键

Android监听和屏蔽home键监听home键public void onUserLeaveHint(){Toast.makeText(this, "监听HOME键", Toast.LENGTH_SHORT).show();}屏蔽home键1. 在activity中加上这段代码就可以屏蔽home键(onKeyDown事件会捕捉到home键)。
public void onAttachedToWindow(){this.getWindow().setType(youtParams.TYPE_KEYGUARD);super.onAttachedToWindow();}public void onAttachedToWindow(){this.getWindow().setType(youtParams.TYPE_KEYGUARD);super.onAttachedToWindow();} 2.因为android系统自己对与home键power键在PhoneWindowManager中做了处理,不会返回到上层应用的。
以下为系统源码:\frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowMa nager.java 1089行if (code == KeyEvent.KEYCODE_HOME) {// If a system window has focus, then it doesn't make sense// right now to interact with applications.youtParams attrs = win != null ? win.getAttrs() : null;if (attrs != null) {final int type = attrs.type;if (type == youtParams.TYPE_KEYGUARD|| type == youtParams.TYPE_KEYGUARD_DIALOG) {// the "app" is keyguard, so give it the keyreturn false;}final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;for (int i=0; i<typeCount; i++) {if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {// don't do anything, but also don't pass it to the appreturn true;}}}\frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowMa nager.java 1089行if (code == KeyEvent.KEYCODE_HOME) {// If a system window has focus, then it doesn't make sense// right now to interact with applications.youtParams attrs = win != null ? win.getAttrs() : null;if (attrs != null) {final int type = attrs.type;if (type == youtParams.TYPE_KEYGUARD|| type == youtParams.TYPE_KEYGUARD_DIALOG) {// the "app" is keyguard, so give it the keyreturn false;}final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;for (int i=0; i<typeCount; i++) {if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {// don't do anything, but also don't pass it to the appreturn true;}}}type == youtParams.TYPE_KEYGUARD这一句,我们可以看到,android对于锁屏特殊判断了,所以我就模拟这个进行的实现,只是有一点,activity中重写onAttachedToWindow()方法需要api 5以上。
ipadair换home键教程

ipadair换home键教程iPad Air 的home 键是一个重要的操作按钮,用于返回主屏幕、多任务处理、指纹识别等功能。
如果你需要更换 iPad Air 的home 键,下面是一个简单的步骤,帮助你进行操作。
1. 准备所需工具和配件:一个吸盘、一个三角形开腰刀、一个五角形螺丝刀、一个新的 home 键配件。
2. 关闭 iPad Air 并断开电源。
这是为了确保你进行维修时不会受到电击,并且能够保持设备安全。
3. 用吸盘小心地把 iPad Air 的显示屏从正面轻松地拉起。
你可以将吸盘放置在屏幕底部,然后用手势拉起。
4. 用螺丝刀拧掉位于屏幕下方两边的五角形螺丝。
这些螺丝一般比较小,请小心不要掉落或损坏。
5. 将三角形开腰刀插入 iPad Air 的现有 home 键与显示屏连接的缝隙中。
小心地分离 home 键与显示屏的连接,但不要太用力,以免损坏其他部件。
6. 用螺丝刀拧掉 home 键旁边固定键盖上的两颗五角形螺丝。
这将帮助你取下旧的 home 键。
7. 小心地把旧的 home 键从其位置上解采。
确保拆卸过程中手部稳定,并不要弄丢或损坏任何小零件。
8. 插入新的 home 键部件到相应的插槽中。
确保其与显示屏上的连接器匹配,并且连接稳固。
9. 重新装上固定键盖,并拧紧两颗五角形螺丝。
10. 将显示屏轻推回原位,确保其安全地放置在 iPad Air 上。
11. 重新安装屏幕下方的两颗五角形螺丝。
确保它们牢固地固定在位。
12. 打开电源并测试新的 home 键。
确保它正常工作,并可以正常触摸和指纹识别。
以上就是更换 iPad Air 的 home 键的简单教程。
请注意,如果你对自己进行维修操作不太有信心,或者担心会损坏设备,最好寻求专业技术人员的帮助。
这样可以确保更换过程顺利并避免不必要的麻烦。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相信在Android应用上,很多时候逻辑是需要屏蔽Home键的,但这个用户体验是否需要,就看各位的需求了。
一般的方法屏蔽Home键,大家一定看过不少文章了。
我总结一下,先说一下一般情况下Activity的屏蔽按键和Home键吧。
屏蔽其他键,重写onKeyDownJava代码1.@Override2.public boolean onKeyDown(int keyCode, KeyEvent event) {3.Log.i(TAG,"keycode="+keyCode + " isBan="+isBan);4.switch (keyCode) {5.case KeyEvent.KEYCODE_BACK:6.Log.i(TAG,"KEYCODE_BACK");7.return true;8.}9.return super.onKeyDown(keyCode, event);10.}大家会发现,这里屏蔽Home键是捕捉不到的,因为大家的权限一般是User所以是无效的。
而其实android处理Home键等系统级按键是有一定的处理的。
引用看看源码是怎样处理的\frameworks\policies\base\phone\com\android\internal\policy\impl\Phon eWindowManager.java #1092Java代码1.// First we always handle the home key here, so applications2.// can never break it, although if keyguard is on, we do let3.// it handle it, because that gives us the correct 5 second4.// timeout.5.if (code == KeyEvent.KEYCODE_HOME) {6.7.// If a system window has focus, then it doesn't make sense8.// right now to interact with applications.youtParams attrs = win != null ? win.getAttrs() :null;10.if (attrs != null) {11.final int type = attrs.type;12.if (type == youtParams.TYPE_KEYGUARD13.|| type == youtParams.TYPE_KEYGUARD_DIALOG) {14.// the "app" is keyguard, so give it the key15.return false;16.}17.final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.length;18.for (int i=0; i<typeCount; i++) {19.if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {20.// don't do anything, but also don't pass it to the app21.return true;22.}23.}24.}通过源码,我们不难发现两个的参数youtParams.TYPE_KEYGUARD和youtParams.TYPE_KEYGUARD_DIALOG借鉴于此,重写onAttachedToWindow,以实现屏蔽Home键Java代码1.public void onAttachedToWindow() {2.this.getWindow().setType(youtParams.TYPE_KEYGUARD);3.super.onAttachedToWindow();4.}- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 华丽的分界线,以下内容更精彩- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -轮到dialog了,如果在Activity弹出dialog,在Activity设置以上2个方法是没办法屏蔽的。
其实,原理是一样的,只是地方不一样而已。
Java代码1.final Dialog dialog = new Dialog(this);2.dialog.setContentView(yout.mydailog);3.dialog.getWindow().setType(youtParams.TYPE_KEYGUARD);4.dialog.show();5.6.dialog.setOnKeyListener(newandroid.content.DialogInterface.OnKeyListener(){7.@Override8.public boolean onKey(DialogInterface dialog, int keyCode,KeyEventevent) {9.switch (keyCode) {10.case KeyEvent.KEYCODE_BACK:11.Log.i(TAG,"KEYCODE_BACK");12.return true;13.}14.return false;15.}16.});这样运行后,出错如下:Error代码1.10-18 13:27:06.380: ERROR/AndroidRuntime(4684): Caused by:android.view.WindowManager$BadTokenException: Unable to addwindow android.view.ViewRoot$W@2b046d68 -- permission denied for this window type其实,只需要把dialog.getWindow().setType的位置放在show后面就可以了正确代码1.dialog.show();2.dialog.getWindow().setType(youtParams.TYPE_KEYGUARD);这么,就完成了Back键的屏蔽和Home键盘的屏蔽了!总结:1:)在以上用youtParams.TYPE_KEYGUARD的地方改用youtParams.TYPE_KEYGUARD_DIALOG 效果一样。
至于两者的具体差别,得以后再研究研究。
2:)其实,在源码里是这样调用的。
Java代码1.final AlertDialog dialog = new AlertDialog.Builder(mContext)2..setTitle(null)3..setMessage(message)4..setNeutralButton(R.string.ok, null)5..create();6.dialog.getWindow().setType(youtParams.TYPE_KEYGUARD_DIALOG);7.dialog.show();但我们如果这样调用就会出现之前的那个error:permission denied for this window type 这就显而易见了吧~~3:)ProgressDialog 默认屏蔽 Back键,Dialog,AlertDialog则需setOnKeyListener4:)其实屏蔽Home键,在页面的某个地方,例如一个Button的onClick里,去设置setType就可以了,如:Java代码1.button.setOnClickListener(new View.OnClickListener() {2.@Override3.public void onClick(View v) {4.getWindow().setType(youtParams.TYPE_KEYGUARD);5.}6.});但前提是重载Activity的onAttachedToWindow(),哪怕只是一个空实现,然后返回父类方法。
Java代码1.@Override2.public void onAttachedToWindow() {3.super.onAttachedToWindow();4.}5:)其实它们,都是常用的~Java代码1.switch (keyCode) {2.case KeyEvent.KEYCODE_HOME:3.Log.i(TAG,"KEYCODE_HOME");4.return true;5.case KeyEvent.KEYCODE_BACK:6.Log.i(TAG,"KEYCODE_BACK");7.return true;8.case KeyEvent.KEYCODE_CALL:9.Log.i(TAG,"KEYCODE_CALL");10.return true;11.case KeyEvent.KEYCODE_SYM:12.Log.i(TAG,"KEYCODE_SYM");13.return true;14.case KeyEvent.KEYCODE_VOLUME_DOWN:15.Log.i(TAG,"KEYCODE_VOLUME_DOWN");16.return true;17.case KeyEvent.KEYCODE_VOLUME_UP:18.Log.i(TAG,"KEYCODE_VOLUME_UP");19.return true;20.case KeyEvent.KEYCODE_STAR:21.Log.i(TAG,"KEYCODE_STAR");22.return true;23.}希望大家看到这个文章能觉得有用,谢谢已阅者!- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 华丽的分界线,以下内容更精彩- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2011-10-20 更新如下:总结1:)的问题,有答案了,时间问题我就简单写写吧:从功能上来说,是一样的,区别在样式。