我知道这个问题已经被问过很多次了,但提供的解决方案似乎都不适合我。我试过这里,这里和这里
我的要求:-我想在android上覆盖HOME键和RECENT 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键的一种方法是让我的应用程序表现得像一个启动应用程序。但是有没有更好的方法呢?
你不能这样做。你为你的Activity定义了一个意图过滤器:
<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>