2012-07-06 122 views
0

我用下面的代碼禁用Android主按鈕和通知欄

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

我用下面的代碼來禁用home鍵

@Override 
public void onAttachedToWindow() 
{ 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);  
    super.onAttachedToWindow(); 
} 

禁用通知欄,但是當我用上面的代碼要禁用主頁按鈕,通知將顯示在最上面。
任何人都可以告訴我如何實現這兩個?

+1

爲什麼會有人想要禁用的主頁按鈕之前,您onCreate()方法添加該代碼? – Egor 2012-07-06 08:13:49

+0

我正在製作鎖屏 – jaisonDavis 2012-07-06 08:17:49

+0

我同意葉戈爾。主頁按鈕有很好的理由,不應該被禁用。這個確切原因,我懷疑Android甚至會讓你。編輯:好吧,我可以看到爲什麼在鎖屏的情況下。 – Doomsknight 2012-07-06 08:17:50

回答

0

你可以通過onKeyDown回調來攔截HOME按鈕,並採取適當的行動,但我不確定它是否會起作用。沒有嘗試過自己。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_HOME) { 
      // Do nothing, or everything else you want to do when the HOME is pressed. 
      return true; 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
+0

我以爲這只是鍵盤按鍵。 – Doomsknight 2012-07-06 08:18:36

+0

此代碼以及我的問題中的onAttachToWindow()代碼可以禁用所有的鍵,但不是通知欄.... – jaisonDavis 2012-07-23 12:07:29

0

使用

<activity 
    android:label="@string/app_name" 
    android:name=".MyActivity" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 

代替

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
1

調用setContentView()

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
+0

這是非常有用的,它的工作原理 – 2012-08-05 11:58:20