是否可以隐藏系统栏
我创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);
编辑:隐藏状态栏将需要您的应用程序全屏或根。