Ошибка Android IllegalArgumentException: тип окна не может быть изменен после добавления окна
Я пытаюсь сделать кастомный экран блокировки. Поэтому мне не нужно позволять пользователю нажимать кнопку " Домой". В начале пишу
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lock_screen);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
|WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
Тогда я переопределяю OnKeyDown
@Override
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)||(keyCode == KeyEvent.KEYCODE_POWER)||(keyCode == KeyEvent.KEYCODE_VOLUME_UP)||(keyCode == KeyEvent.KEYCODE_CAMERA)) {
//this is where I can do my stuff
return true; //because I handled the event
}
if((keyCode == KeyEvent.KEYCODE_HOME)){
return true;
}
return false;
}
Здесь я переопределить на AttacheToWindow
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
Но это дает мне ошибку IllegalArgumentException: тип окна не может быть изменен после добавления окна. Где моя ошибка?
Как я могу справиться с Home Button?