2012-02-07 107 views
2

我想在活動中禁用狀態欄,我使用下面的代碼,它發生SecurityException, StatusBarManagerService:用戶10049或當前進程都沒有android.permission.STATUS_BAR。我添加了<uses-permission android:name="android.permission.STATUS_BAR">,但它不工作?任何人都知道如何解決這個問題?由於如何在android中禁用狀態欄?

mStatusBar = getSystemService("statusbar"); 

if (mStatusBar != null){ 
    Log.v("statusbar", "get status bar service "+mStatusBar.getClass()); 
    Method[] arrayOfMethods; 
    Method localMethod; 
    arrayOfMethods = mStatusBar.getClass().getMethods(); 
    for (int i = 0; i < arrayOfMethods.length; i++){ 
     localMethod = arrayOfMethods[i]; 
     Log.v("statusbar", "find status bar method "+localMethod); 
     if (localMethod.getName().equalsIgnoreCase("collapse")){ 
//     mStatusBarCollapseMethod = localMethod; 
      } else if (localMethod.getName().equals("disable")){ 
       try { 
        Log.v("statusbar", "invoke "+mStatusBar+"."+localMethod.getName()+"(1)"); 
        localMethod.invoke(mStatusBar, 1); 
        Log.v("statusbar", "disable statusbar"); 
       } catch (Exception e) { 
        Log.v("statusbar", "disable statusbar excption:"+e.toString()); 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 
} 
+0

回答了這裏:http://stackoverflow.com/a/10380535/788848 – PoOk 2012-06-12 09:03:03

回答

3

如果需要從Java代碼停用狀態欄,然後你可以這樣做:

Window win = getWindow(); 
win.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
2

簡單的解決方案,只需添加android:theme=」@android:style/Theme.NoTitleBar.Fullscreen」到您的清單,例如:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="de.vogella.android.temperature" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".Convert" 
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 
    <uses-sdk android:minSdkVersion="9" /> 

</manifest> 
+0

我已經設置了全屏主題。但我當我打電話 public void onAttachedToWindow() { if (!mInPreviewBoolean){ this.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);//for capture the home key } super.onAttachedToWindow(); } 然後狀態欄將變得可見,我的工具是一個鎖屏活動,所以想活動是全屏幕和狀態欄是不可見或禁用。 我有添加權限android.permission.EXPAND_STATUS_BAR,然後我可以訪問statusbar.collapse(),但即使我有添加android.permission.STA – 2012-02-08 02:12:45

+0

這仍然允許訪問通知時,從頂部擋板向下滑動。 – 2013-11-03 05:23:44

相關問題