Ошибка 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?

0 ответов

Другие вопросы по тегам