Android 5.0 怎样android 屏蔽homeE键

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&如何在Android App中屏蔽Home按键及其他按键_百度知道怎么禁用Home键?_百度知道重写Activity的onAttachedToWindow 方法
public void onAttachedToWindow() {
System.out.println("Page01 --&onAttachedToWindow");
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
监听OnKey事件
public boolean onKeyDown(int keyCode, KeyEvent event) {
System.out.println("Page01 --&onKeyDown: keyCode: " + keyCode);
if (KeyEvent.KEYCODE_HOME == keyCode) {
System.out.println("HOME has been pressed yet ...");
// android.os.Process.killProcess(android.os.Process.myPid());
Toast.makeText(getApplicationContext(), "HOME 键已被禁用...",
Toast.LENGTH_LONG).show();
return super.onKeyDown(keyCode, event); // 不会回到 home 页面
阅读(...) 评论()在activity中屏蔽home键的方法 - 勇敢的心_ - 博客园
在activity中加上下面这段代码就可以屏蔽home
@Override&&
&&&&public&boolean&onKeyDown(int&keyCode,&KeyEvent&event) &&
&&&&&&&&//&TODO&Auto-generated&method&stub &&
&&&&&&&&//&按下键盘上返回按钮 &&
&&&&&&&&if&(keyCode&==&KeyEvent.KEYCODE_HOME) &&
&&&&&&&&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&Log.i("TAG","home"); &&
&&&&&&&&&&&&System.exit(0); &&
&&&&&&&&&&&&return& &&
&&&&&&&&} &&
&&&&&&&&else&&
&&&&&&&&&&&&return&super.onKeyDown(keyCode,&event); &&
public boolean onKeyDown(int keyCode, KeyEvent event)
& // TODO Auto-generated method stub
& // 按下键盘上返回按钮
& if (keyCode == KeyEvent.KEYCODE_HOME)
&&&&&&&&&&&&&&&&&&&&&&& Log.i("TAG","home");
&& System.exit(0);
&& return super.onKeyDown(keyCode, event);
前提是,要重写onAttachedToWindow()这个方法。
@Override&&
&&&&public&void&onAttachedToWindow() &&
&&&&&&&&this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); &&
&&&&&&&&super.onAttachedToWindow(); &&
public void onAttachedToWindow()
& this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
& super.onAttachedToWindow();
因为android系统自己对home键在PhoneWindowManager中做了处理,不会返回到上层应用。查看源代码:
\frameworks\policies\base\phone\com\android\internal\policy\impl\PhoneWindowManager.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. &&
&&&&&&&&&&&&WindowManager.LayoutParams&attrs&=&win&!=&null&?&win.getAttrs()&:& &&
&&&&&&&&&&&&if&(attrs&!=&null)&{ &&
&&&&&&&&&&&&&&&&final&int&type&=&attrs. &&
&&&&&&&&&&&&&&&&if&(type&==&WindowManager.LayoutParams.TYPE_KEYGUARD &&
&&&&&&&&&&&&&&&&&&&&&&&&||&type&==&WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG)&{ &&
&&&&&&&&&&&&&&&&&&&&//&the&"app"&is&keyguard,&so&give&it&the&key &&
&&&&&&&&&&&&&&&&&&&&return& &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&final&int&typeCount&=&WINDOW_TYPES_WHERE_HOME_DOESNT_WORK. &&
&&&&&&&&&&&&&&&&for&(int&i=0;&i&typeC&i++)&{ &&
&&&&&&&&&&&&&&&&&&&&if&(type&==&WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i])&{ &&
&&&&&&&&&&&&&&&&&&&&&&&&//&don't&do&anything,&but&also&don't&pass&it&to&the&app &&
&&&&&&&&&&&&&&&&&&&&&&&&return& &&
&&&&&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&&&&&} &&
&&&&&&&&&&&&}&&
if (code == KeyEvent.KEYCODE_HOME) {
&&&&&&&&&&& // If a system window has focus, then it doesn't make sense
&&&&&&&&&&& // right now to interact with applications.
&&&&&&&&&&& WindowManager.LayoutParams attrs = win != null ? win.getAttrs() :
&&&&&&&&&&& if (attrs != null) {
&&&&&&&&&&&&&&& final int type = attrs.
&&&&&&&&&&&&&&& if (type == WindowManager.LayoutParams.TYPE_KEYGUARD
&&&&&&&&&&&& &&&&&&&&&&&|| type == WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG) {
&&&&&&&&&&&&&&&&&&& // the "app" is keyguard, so give it the key
&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& final int typeCount = WINDOW_TYPES_WHERE_HOME_DOESNT_WORK.
&&&&&&&&&&&&&&& for (int i=0; i&typeC i++) {
&&&&&&&&&&&&&&&&&&& if (type == WINDOW_TYPES_WHERE_HOME_DOESNT_WORK[i]) {
&&&&&&&&&&&&&&&&&&&&&&& // don't do anything, but also don't pass it to the app
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& }
&&&&&&&&&&& }
&注意,activity中重写onAttachedToWindow()方法需要api 5以上
阅读(...) 评论()}

我要回帖

更多关于 android 6.0 屏蔽home 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信