如何在Android平板电脑中隐藏底部系统栏

Man*_*wal 5 performance android android-widget android-layout android-permissions

我正在开发一个仅适用于平板电脑的应用程序,其要求是在平板电脑的全屏幕上运行应用程序.

为此我在主要活动中使用了以下代码:

getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

此代码段仅删除标题栏和操作栏.但在平板电脑中,有一个底部系统栏(有主页和后退按钮).我也想删除或隐藏这个系统栏.

我搜索过,但只有以下解决方案:

  1. 没有用于删除或隐藏系统栏的API.
  2. 你可以使用一些Android应用程序来隐藏系统栏.(例如:surelock,hidebar等)

我的问题是:

  1. 在Android中真的不可能吗?
  2. 以上可用应用程序(即surelock,隐藏栏等)也隐藏栏.这意味着他们正在使用某些东西.可以在我们的应用程序中使用此内容,因此用户不需要单独下载这些应用程序.

请指导我.

我知道这不是一个好主意.但我的应用程序仅适用于安装了Android 4.0或更高版本的平板电脑,平板电脑只运行这个应用程序,所以我们不需要返回并使用主页按钮.这就是为什么我的要求是全屏使用该应用程序.

Aru*_*n C 9

如果您具有root访问权限,则可以使用此代码,否则不允许使用此代码

try{
    //REQUIRES ROOT
    Build.VERSION_CODES vc = new Build.VERSION_CODES();
    Build.VERSION vr = new Build.VERSION();
    String ProcID = "79"; //HONEYCOMB AND OLDER

    //v.RELEASE  //4.0.3
    if(vr.SDK_INT >= vc.ICE_CREAM_SANDWICH){
        ProcID = "42"; //ICS AND NEWER
    }



    //REQUIRES ROOT
    Process proc = Runtime.getRuntime().exec(new String[]{"su","-c","service call activity "+ ProcID +" s16 com.android.systemui"}); //WAS 79
    proc.waitFor();

}catch(Exception ex){
    Toast.makeText(getApplicationContext(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
Run Code Online (Sandbox Code Playgroud)

看到这个


Sam*_*yay 8

在Android API 4.0及更高版本中,您可以使用以下代码隐藏底部系统栏.

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
          | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
Run Code Online (Sandbox Code Playgroud)


Shr*_*ant 5

除非您具有root访问权限,否则这是不可能的.或者,您可以创建一个launcher application.

否则,隐藏系统/导航栏将超出您的应用程序的范围.