是否可以隐藏系统栏

我创build了一个启动器,在内部应用程序中使用它。 出于一些安全的原因,我想隐藏系统栏(访问参数和访问权限到已安装的应用程序)。 但我不知道如何做到这一点。 将使用的平板电脑不是扎根的。 你能帮我吗?

你不能隐藏它,但你可以禁用它,除了家。 为此,你可以给你的应用程序作为家庭类别,让用户select。

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

rest都可以禁用。

在清单中添加这个。

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

在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); 

其中home_view是xml文件的父视图。

  @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) { } } 

您可以隐藏我使用此代码隐藏的底部栏:

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

使用此代码的键盘或远程Android机器人。

将使用的平板电脑不是扎根的

那么你不能隐藏它。 但是,您可以使用SYSTEM_UI_FLAG_HIDE_NAVIGATION将其暂时隐藏,但是一旦用户触摸屏幕,它就会显示出来:

有一个限制:因为导航控件非常重要,用户最less的交互会导致它们立即重新出现。 发生这种情况时,该标志和SYSTEM_UI_FLAG_FULLSCREEN都将被自动清除,以便两个元素同时重新出现。

您可以使用SYSTEM_UI_FLAG_HIDE_NAVIGATION标志在Android 4.0及更高版本上隐藏导航栏。 这段代码隐藏了导航栏和状态栏:

 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 

请参阅以下内容: 隐藏导航栏

把这个放在你的onCreate()方法中:

requestWindowFeature(Window.FEATURE_NO_TITLE);

编辑:隐藏状态栏将需要您的应用程序全屏或根。