2012-03-15 35 views
13

我正在Android ICS的啓動器中工作,但我遇到了平板電腦的問題。在Android冰淇淋三明治上隱藏狀態欄

我無法隱藏狀態欄。我已經在Android 2.3.X中試用了,沒關係。該問題僅在Android 4.0上出現。

我該如何隱藏它?

回答

5

您無法擺脫平板電腦上的系統欄。你可能能夠擺脫手機上的導航欄和狀態欄。請閱讀the Android 4.0 SDK release notes的「系統UI可見性控制」部分。

+0

好的...我不能隱藏它......但是我可以阻止/覆蓋按鈕的動作嗎? – NachoMV 2012-03-15 23:17:27

+3

爲什麼視頻播放器是全屏幕和隱藏狀態欄? – NachoMV 2012-03-15 23:21:30

+0

視頻播放器不隱藏ICS平板電腦上的系統欄。 – CommonsWare 2012-03-15 23:29:23

11

在Android 4.0中無法獲得100%真正的全屏。

使用以下變暗通知欄(亦稱狀態欄,系統欄)

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE); 

,並以此來隱藏它

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 

而且,如果我猜的沒錯,你是試圖實現「信息亭模式」。您可以使用名爲「surelock」的應用程序獲得一些幫助。這會阻止所有「家庭」和「後退」操作。

它仍然不是完美的,但這可能是我們可以用Android ICS實現的最佳選擇。

+1

我真的很想知道Surelock能夠隱藏Home和Back按鈕在我的應用程序中執行它。你能幫我嗎? – Pascal 2013-01-23 07:31:20

+0

@Pascal SureLock替換您的默認啓動器,因此當您按下後退或主頁按鈕時,您將被帶回到SureLock。他們還有一個選項,用於查找未列入白名單的進程並殺死它們。 – 2013-03-20 04:06:48

7

可以隱藏rooted android設備上的狀態欄。程序Hidebar通過殺死systemui進程來做到這一點。該程序是開源的,因此您可以在source code中閱讀關於它的所有信息。

請參閱http://ppareit.github.com/HideBar/

+0

不要在Android 4.0 ICS上嘗試此操作,因爲SystemUI幾乎對所有內容負責,並且會導致不穩定的行爲。它重置系統壁紙,刪除底部的軟件按鈕等。 – Tom 2012-06-16 15:57:58

+1

@ppareit的建議工作+1,但一個人應該讓自己熟悉涉及的風險 – 2012-11-17 14:56:12

+1

Thanks @ile。較新版本的HideBar有一個新的更高級的方法來隱藏系統。 HideBar還支持使用「Intents」的接口,以便其他應用程序可以要求隱藏系統。有添加的權限,以便用戶知道什麼應用程序可以隱藏系統。如果您需要在您自己的應用程序中使用此功能,最好使用HideBar網站上提供的地址與我聯繫。 – ppareit 2012-11-17 15:52:41

1

隱藏在Android 4.0的狀態欄和導航欄,我們應該使用下面的代碼:在ppareit的答案

LinearLayout layout = (LinearLayout)findViewById(R.id.layout); 
layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); 
4

我知道我的回答來得有點晚,但組裝來自不同地方的信息後,我想出了這一點,這僅適用於已解鎖裝置:

private void KillStatusBar() 
{ 
    Process proc = null; 

    String ProcID = "79"; //HONEYCOMB AND OLDER 

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){ 
     ProcID = "42"; //ICS AND NEWER 
    } 

    try { 
     proc = Runtime 
       .getRuntime() 
       .exec(new String[] { "su", "-c", 
         "service call activity "+ProcID+" s16 com.android.systemui" }); 
    } catch (IOException e) { 
     Log.w(TAG,"Failed to kill task bar (1)."); 
     e.printStackTrace(); 
    } 
    try { 
     proc.waitFor(); 
    } catch (InterruptedException e) { 
     Log.w(TAG,"Failed to kill task bar (2)."); 
     e.printStackTrace(); 
    } 

} 

這將消除任何根深蒂固的底欄設備並將其變爲「信息亭」模式。

相關問題