is it possible to hide the system bar

前端 未结 5 1654
情歌与酒
情歌与酒 2020-11-28 10:13

I created a launcher, to use it in an internal application. for some security reasons i would like to hide the system bar (the acces to the parameter an ordrer to the acces

相关标签:
5条回答
  • 2020-11-28 10:37

    You can't hide it but you can disable it, except home. For that you can give your application as home category and let the user choose.

    <category android:name="android.intent.category.HOME" />
    

    Rest all can be disable.

    add this in manifest.

    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
    

    inside onCreate()

    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_home);
        View v = findViewById(R.id.home_view);
        v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
    

    where home_view is the parent view of xml file.

     @Override
         public boolean onKeyDown(int keyCode, KeyEvent event) {
                return false;
            }
    
     public void onWindowFocusChanged(boolean hasFocus)
         {
                 try
                 {
                    if(!hasFocus)
                    {
                         Object service  = getSystemService("statusbar");
                         Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
                         Method collapse = statusbarManager.getMethod("collapse");
                         collapse .setAccessible(true);
                         collapse .invoke(service);
                    }
                 }
                 catch(Exception ex)
                 {
                 }
         }
    
    0 讨论(0)
  • 2020-11-28 10:47

    You can hide the navigation bar on Android 4.0 and higher using the SYSTEM_UI_FLAG_HIDE_NAVIGATION flag. This snippet hides both the navigation bar and the status bar:

    View decorView = getWindow().getDecorView();
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions
    

    See the following: Hiding the Navigation Bar

    0 讨论(0)
  • 2020-11-28 10:56

    Put this in your onCreate() method:

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    EDIT: Hiding the status bar would require your application be full screen or rooted.

    0 讨论(0)
  • 2020-11-28 10:57

    You can hide the bottom bar I used this code to hide:

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

    use this code for android box with keyboard or remote.

    0 讨论(0)
  • 2020-11-28 10:59

    Tablet that will be used are not rooted

    Then you can't hide it. You can however use SYSTEM_UI_FLAG_HIDE_NAVIGATION to hide it temporary, but it will get visible once the user touches the screen:

    There is a limitation: because navigation controls are so important, the least user interaction will cause them to reappear immediately. When this happens, both this flag and SYSTEM_UI_FLAG_FULLSCREEN will be cleared automatically, so that both elements reappear at the same time.

    0 讨论(0)
提交回复
热议问题