如题,android4.0以后的系统如何屏蔽home键呢? 或者在activity中重写@Override |
|
40分 |
我也在找这个方法。。试了好多都没有用。。好像是要修改底层框架的。。。有大神么、、
|
按照目前我查到的资料,应用层是做不到的,只能改底层。。。 |
|
要su,然后杀死systemui进程
|
|
额,大哥,您这方法。。。。。。。。。。。。。。 |
|
分两个级别吧,
系统级的改源码,这个肯定没问题,但是我们写的APP都是应用级的肯定不能改。 如果单纯的只是屏蔽home键在应用级是不可能,但是目前的解决方法可以采用一些变通的方式。比如现在百度锁屏是屏蔽了home键的,当然并不是真的屏蔽了home键,而是点击了home之后修改系统的桌面为锁屏界面,这样当然也就实现了锁屏的效果。 |
|
可以这样做吧,以前做过锁屏的,this.getWindow().setType(0x800000,0x8000000);
|
|
这个方法好像没有吧。还是我不会用呢, |
|
应用级没有希望的,参考5楼
|
|
其实这样也可以,点击home键之后,将系统桌面更改为自己的程序界面,, |
|
为什么非得捕获home键呢? |
|
这个参数基本上等于白瞎,只对部分4.0和4.1.2的机型管用(对红米管用),大多数都不顶用。并且还会导致部分机型出现 黑屏状态。 |
|
捕获home键的原因是,当我程序运行时,需要将所有的按键都失效,包括back,home,多任务键等。当我程序运行结束后,按键可以恢复使用。。 |
|
锁屏的时候,其他的按钮你随便怎么屏蔽都可以,按照原来去屏蔽。 |
|
明白了,我的需求是当我程序运行时,其他键不可用,暂时屏蔽,当我程序结束运行时,按键恢复。其实完全可以这么做:程序运行时,触发系统锁屏,同时将自己的程序设置为锁屏界面,当程序结束运行时,再进行解锁。这样也就做到了屏蔽所有的按键了。。。。恩,对,非常感谢啦 |
|
我只会在驱动里面去掉这个home 相关的东西,app 没搞过。
|
|
去掉home相关的东西???什么意思。。。。 |
|
2.3.3的老系统有用 |
|
楼主解决了吗?
|
|
在4.0以上的版本中需要利用以下方法屏蔽和重写Home键,代码如下:
public static final int FLAG_HOMEKEY_DISPATCHED = 0x80000000; //需要自己定义标志 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(FLAG_HOMEKEY_DISPATCHED, FLAG_HOMEKEY_DISPATCHED);//关键代码 setContentView(R.layout.main); } 再重写onKey事件即可。 @Override public boolean onKeyDown( int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == event. KEYCODE_HOME) { return true; } return super.onKeyDown(keyCode, event); } |
|
可以参考这里 http://www.cnblogs.com/sphere/archive/2014/12/02/4137814.html
|
|
请问一下。@AA5279AA
你在5楼的时候说。把程序点击了home之后修改系统的桌面为锁屏界面,退出的时候再弄回原本的系统桌面 然后我就产生了一个问题。 假如手机在你锁屏的时候重启了。例如没电了。但是我是处于锁屏的状态。那岂不是等到用户开机的时候系统的桌面还是锁屏的界面?? |