如何在android平板电脑中隐藏底部系统栏
我正在开发一个仅适用于平板电脑的应用程序,其要求是在平板电脑的全屏上运行应用程序 为此,我在主要活动中使用了以下代码:如何在android平板电脑中隐藏底部系统栏,android,performance,android-layout,android-widget,android-permissions,Android,Performance,Android Layout,Android Widget,Android Permissions,我正在开发一个仅适用于平板电脑的应用程序,其要求是在平板电脑的全屏上运行应用程序 为此,我在主要活动中使用了以下代码: getWindow().requestFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 此代码段仅删除标题栏和操作栏。但在平板电脑中,有一个底
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
此代码段仅删除标题栏和操作栏。但在平板电脑中,有一个底部的系统栏(有home和back按钮)。我还想删除或隐藏这个系统栏太
我已经搜索过了,但只有以下解决方案:
我知道这不是个好主意。但我的应用程序只适用于Android 4.0或更高版本的平板电脑,平板电脑将只运行这一个应用程序,因此我们不需要返回并使用home按钮。这就是为什么我要求全屏使用该应用程序的原因 除非您具有root访问权限,否则这是不可能的。或者,您可以创建一个
启动程序应用程序
否则,隐藏系统/导航栏将超出应用程序的范围。如果您具有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();
}
在互联网上进行了大量搜索之后,我成功地通过以下方法将系统栏隐藏并显示在4.2设备中: 要隐藏:
Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");
如果API小于14,则使用79而不是42。您可能还需要包括SET_DEBUG_APP权限,在这种情况下,您需要使用系统密钥对应用程序进行签名或将其安装在/system/APP/目录中
显示:
Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");
或者,有些人使用了-a(而不是-n)选项,尽管这会在我的设备上导致错误:
错误:未找到;未启动任何服务。从Android API 4.0及更高版本,您可以使用以下代码隐藏底部系统栏
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
我认为隐藏系统栏不是一个好主意,因为这是一个用户实际上可以控制应用程序行为的地方——后退按钮/主页按钮。你所说的“只有当你拥有根访问权限或创建了任何启动应用程序时才有可能”是什么意思?Android是一个基于Linux的操作系统。和Linux一样,android也有两种类型的用户:1。超级/根用户2。普通用户。现在,如果您获得root用户访问权限,或者您创建任何应用程序作为Go Launcher或类似的东西,那么只有您可以做您想做的事情我可以拥有对我的应用程序的root访问权限吗?如果我有根权限隐藏系统栏,那怎么可能呢?请仔细阅读:隐藏系统栏,我想你需要为它编写一些命令,我以前从来没有这样做过。@Shrikant你能发布代码来隐藏启动器应用程序的底部栏吗。我有同样的问题,我的申请是Launchhi,答案完全正常。但是我怎样才能再把吧台给你看你能帮忙吗?