web-dev-qa-db-ja.com

ロック画面はホームボタンを検出します

最近ACDisplayロック画面アプリをダウンロードしました:

https://play.google.com/store/apps/details?id=com.achep.acdisplay

アプリケーションはデバイスにオーバーレイを表示すると同時に、activityhome button clickを検出するため、ロック画面をバイパスできません。また、ルート化されていないデバイスでrecent buttonを完全に隠すこともできます。そんなことがあるものか?

私は次のリンクを通過しました:

Androidでホームボタンの押下を検出

ユーザーがアクティビティでHOMEキーを押すのをどのように検出できますか?

ユーザーがアクティビティでHOMEキーを押すのをどのように検出できますか?

以前のバージョンのAndroid ORで機能するために使用されたすべてのソリューションは、homeボタンのクリックが悪意のあるユーザーによって使用される可能性があるため、検出できないと述べていますアプリ。

このアプリケーションはどのようにしてこれを行うことができますか?

認証に成功するまでユーザーがロック画面アプリを終了するのを防ぐ方法について、誰かがサンプルコード/アプリを共有できますか?

ありがとうございました。

15
user2511882
            WindowManager windowManager  = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
            WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
            } else {
                layoutParams.type = WindowManager.LayoutParams.TYPE_PHONE;
            }
            layoutParams.gravity = Gravity.TOP | Gravity.LEFT;
            layoutParams.x = 0;
            layoutParams.y = 0;
            layoutParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
            View window = LayoutInflater.from(this).inflate(R.layout.activity_main, null, false);

            windowManager.addView(window, layoutParams);

次のコードは、要件に従ってホーム、戻る、および[最近]ボタンをブロックします。

マニフェストで次の権限も必要です。

<uses-permission Android:name="Android.permission.SYSTEM_ALERT_WINDOW" />
1
user2511882

最近のボタンとホームボタンを無効にすることはできませんが、Window Managerlink を使用してこれを達成できます。 Androidアプリケーション画面にオーバーレイします。

0
kdblue