2013-03-17 88 views
2

我試圖用我自己的應用程序替換股票鎖定屏幕。
在我的代碼中,我想禁用主頁按鈕。
我知道如何做到這一點在Android 2.3及以下,
但相同的代碼不與Android 4.0+(返回到桌面時,Home鍵按下)工作

最近我發現叫MiHome的應用程序,它有它自己的鎖定屏幕並且能夠禁用主頁按鈕。
有誰知道它是如何實現這?
在Android 4.0及更高版本中禁用主頁按鈕

回答

3

由於ICS中的安全/可靠性原因,主頁按鈕被禁用被禁用。 (大多數應用程序使用它爲邪惡而不是好)

請參閱以下問題的變通辦法。

  1. how can I disable android 4.0 home button
  2. override Home key in android ICS
  3. Disable Home Button in Android ICS (4.0)

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

+0

這種方法並不能在Android 4.0.3評論由commonsware第二環節的工作。 – Raghunandan 2013-03-17 11:27:07

+0

對不起。似乎這是不可能的ICS不實施一個假的主屏幕。我更新了答案。 – Madushan 2013-03-17 19:40:00

14

有沒有辦法攔截Android上的主頁按鈕,除非您將您的應用程序設置爲主屏幕。這是出於安全原因,因此惡意應用無法通過覆蓋可退出的所有按鈕來接管設備。主頁按鈕是能夠離開任何應用程序的一種可靠的拍攝方式。

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

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); 
相關問題