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