当前位置: 代码迷 >> Android >> android 监听home键无效是咋回事
  详细解决方案

android 监听home键无效是咋回事

热度:97   发布时间:2016-05-01 10:28:46.0
android 监听home键无效是怎么回事?
自己昨天发现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键会去执行该函数。
------解决方案--------------------
引用:
不知LZ为什么要监听home键,如果要处理用户按了home键程序要执行的操作,可以去看下onUserLeaveHint()函数,按home键会去执行该函数。


这位兄台说得有道理。为什么要监听HOEM。
另外,据我所知,framework是不是会提供监听HOEM的,因为如果可以监听,恶意程序把HOME键的功能可以屏蔽掉。
可以试试preguide,好像这是个东西。
------解决方案--------------------
可以监听这个广播 
ACTION_CLOSE_SYSTEM_DIALOGS
来监听home键
------解决方案--------------------
4.0以上的版本已经被系统给拦截了
  相关解决方案