0

私は Android アプリケーションで作業しています。私のシナリオは、アクティビティの上に透明なアクティビティを表示することであり、追加することで正常に実装されました。

android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"

その活動の私のマニフェストで。しかし、Android デバイスのハードウェアのホーム ボタンもオーバーライドしたいと考えています。dispatchKeyEventそのため、キーイベントをオーバーライドし、onAttachedToWindowそれを正常に実装しました。しかし、ホームボタンのキーをオーバーライドすると、この透過的なアクティビティは表示されません。ホームキーイベントをオーバーライドするために使用したコードは次のとおりです。

:

@Override
    public boolean dispatchKeyEvent(KeyEvent event) {
        onAttachedToWindow();

        if ((event.getKeyCode() == KeyEvent.KEYCODE_HOME)) {

            // if Home button is pressed EntryValidationActivity called
            SharescreenActivity.this.finish();
            Intent screenLockIntent = new Intent(SharescreenActivity.this,
                    EntryValidationActivity.class);
            startActivity(screenLockIntent);
            this.moveTaskToBack(true);
            return true;
        } else
            return super.dispatchKeyEvent(event);
    }


 @Override
    public void onAttachedToWindow() {

        this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
        //this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onAttachedToWindow();

    }

これらの両方を連携させるためのソリューション。前もって感謝します。

4

0 に答える 0