Android HOME按钮覆盖不起作用

时间:2015-09-16 17:42:40

标签: android android-button illegalargumentexception android-homebutton

我知道这个问题已被多次询问,但所提供的解决方案似乎都不适用于我。我尝试过hereherehere

我的要求: - 我想在Android上覆盖HOME BUTTON和最近的APPS按钮。我知道这不是最好的,但要求就是这样,我必须这样做。

我的代码: -

@Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {


        if(keyCode == KeyEvent.KEYCODE_HOME)
        {
            Log.d("Key","Home button clicked");
            return false;
        }

        if(keyCode == KeyEvent.KEYCODE_MOVE_HOME)
        {
            Log.d("Key","Home button clicked Msg 2");
            return false;
        }
        return super.onKeyDown(keyCode, event);
    }

但onKeyDown()永远不会被调用。并且我得到IllegalArgumentException:添加窗口后无法更改窗口类型错误。

我知道禁用HOME按钮的一种方法是让我的应用程序像启动器应用程序一样运行。但有没有更好的方法呢?

1 个答案:

答案 0 :(得分:1)

你不是这样做的。您为Activity定义了一个intent-filter:

 <intent-filter>
      <action android:name="android.intent.action.MAIN" />

      <category android:name="android.intent.category.HOME" />
      <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>