自己昨天发现onKeydown(...)不能监听home键了,网上查了一下,一般都是这样写的:
1.首先设置权限屏蔽Home键
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
2.@Override
public void onAttachedToWindow() {
// TODO Auto-generated method stub
Log.d("aeon","onAttachedToWindow");
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
3.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Log.d("aeon","onKeyDown");
if(KeyEvent.KEYCODE_HOME==keyCode)
Log.d("aeon","home");
return super.onKeyDown(keyCode, event);
}
但事实证实,这是不行的。具体怎么样才能监听home键。
目前仅发现onSaveInstanceState可以起到监听的作用。我实验版本是android4.1.
哪位大神路过了,请指导一下。谢了
Android
------解决方案--------------------
监听HOME键,不需要在Manifest.xml里面屏蔽的吧,直接在onKeyDown里面捕获,捕获到以后干自己的事情然后直接返回,不要调用return super.onKeyDown(keyCode, event);
楼主可以试试
------解决方案--------------------
不知LZ为什么要监听home键,如果要处理用户按了home键程序要执行的操作,可以去看下onUserLeaveHint()函数,按home键会去执行该函数。
------解决方案--------------------
这位兄台说得有道理。为什么要监听HOEM。
另外,据我所知,framework是不是会提供监听HOEM的,因为如果可以监听,恶意程序把HOME键的功能可以屏蔽掉。
可以试试preguide,好像这是个东西。
------解决方案--------------------
可以监听这个广播
ACTION_CLOSE_SYSTEM_DIALOGS
来监听home键
------解决方案--------------------
4.0以上的版本已经被系统给拦截了