我知道这个问题已被多次询问,但所提供的解决方案似乎都不适用于我。我尝试过here,here和here
我的要求: - 我想在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按钮的一种方法是让我的应用程序像启动器应用程序一样运行。但有没有更好的方法呢?
答案 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>