6

我创建了一个启动器,以便在内部应用程序中使用它。出于某些安全原因,我想隐藏系统栏(对参数的访问权限以及对已安装应用程序的访问权限的命令)。但我不知道该怎么做。将使用的平板电脑未植根。你能帮我吗?

4

5 回答 5

13

你不能隐藏它,但你可以禁用它,除了家。为此,您可以将您的应用程序作为主类别并让用户选择。

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

其余都可以禁用。

将此添加到清单中。

<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)
             {
             }
     }
于 2013-03-27T05:48:39.543 回答
8

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

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

将此代码用于带有键盘或遥控器的 android 框。

于 2013-09-13T08:34:54.537 回答
5

将要使用的平板电脑没有root

那你就藏不住了。但是,您可以SYSTEM_UI_FLAG_HIDE_NAVIGATION 暂时隐藏它,但一旦用户触摸屏幕,它就会变得可见:

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

于 2013-02-10T19:56:38.767 回答
1

您可以使用 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

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

于 2015-02-23T20:57:56.697 回答
0

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

requestWindowFeature(Window.FEATURE_NO_TITLE);

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

于 2013-02-10T19:55:46.657 回答