簡體   English   中英

在Android 4.0+中禁用主頁按鈕

[英]Disable Home button in Android 4.0+

我正在嘗試用我自己的應用程序替換股票鎖定屏幕。
在我的代碼中,我想禁用主頁按鈕。
我知道如何在Android 2.3及更低版本中執行此操作,
但相同的代碼不適用於Android 4.0+(按下Home按鈕時返回桌面)

最近我發現了一個名為MiHome的應用程序,它有自己的鎖定屏幕,可以禁用主頁按鈕。
有誰知道它是如何實現這一點的???

除非您將應用程序設置為主屏幕,否則無法攔截Android上的主頁按鈕。 這是出於安全原因,因此惡意應用程序無法通過覆蓋可以退出的所有按鈕來接管您的設備。 主頁按鈕是一種可以離開任何應用程序的確定鏡頭方式。

如果要處理HOME按鈕,請實現主屏幕。

出於安全性/可靠性原因,在ICS中禁用使用主頁按鈕進行操作。 (大多數應用程序使用它來辟邪而不是好)

有關變通方法,請參閱以下問題。

  1. 如何禁用android 4.0主頁按鈕
  2. 覆蓋android ICS中的Home鍵
  3. 禁用Android ICS中的主頁按鈕(4.0)

似乎唯一的方法是實現主屏幕

嘗試這個

   params = new WindowManager.LayoutParams(
                    WindowManager.LayoutParams.MATCH_PARENT,
                    WindowManager.LayoutParams.MATCH_PARENT,
                    WindowManager.LayoutParams.TYPE_SYSTEM_ERROR, WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,
                    PixelFormat.TRANSLUCENT);
            params.gravity = Gravity.TOP;

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            } else {
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            }
    mOverlay = (RelativeLayout) inflater
                    .inflate(R.layout.main, (ViewGroup) null);

    mOverlay.setFitsSystemWindows(false);
            getWindow().getDecorView().setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
            mWindowManager = (WindowManager) context
                    .getSystemService(Context.WINDOW_SERVICE);
            mWindowManager.addView(mOverlay, params);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM