隐藏平板电脑系统栏

时间:2012-08-14 17:57:48

标签: android android-3.0-honeycomb tablet statusbar

我想隐藏平板电脑设备的系统栏。我搜索了很多但没有成功。我为它添加了图像。

我找到了一些像

这样的解决方案
View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 

但我不知道如何使用它enter image description here

我知道这可能是http://forum.xda-developers.com/showthread.php?t=1228046任何人都知道如何做到这一点吗?

11 个答案:

答案 0 :(得分:7)

在root用户安卓平板电脑上显示/隐藏状态栏的代码段

隐藏:


            Process proc = null;

            String ProcID = "79"; //HONEYCOMB AND OLDER

            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
                ProcID = "42"; //ICS AND NEWER
            }

            try {
                proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "service call activity "+ProcID+" s16 com.android.systemui" });
            } catch (Exception e) {
                Log.w("Main","Failed to kill task bar (1).");
                e.printStackTrace();
            }
            try {
                proc.waitFor();
            } catch (Exception e) {
                Log.w("Main","Failed to kill task bar (2).");
                e.printStackTrace();
            }

显示:


            Process proc = null;
            try {
                proc = Runtime.getRuntime().exec(new String[] { "su", "-c", "am startservice -n com.android.systemui/.SystemUIService" });
            } catch (Exception e) {
                Log.w("Main","Failed to kill task bar (1).");
                e.printStackTrace();
            }
            try {
                proc.waitFor();
            } catch (Exception e) {
                Log.w("Main","Failed to kill task bar (2).");
                e.printStackTrace();
            }

答案 1 :(得分:4)

最后,经过大量的搜索,我得到了一些替代方案。

我知道这对于程序员退出这种情况不是一个好主意,但是对于我的时间限制,我用这种方式......

我发现这个链接和应用程序满足了我的要求

http://www.42gears.com/blog/2012/04/how-to-hide-bottom-bar-in-rooted-android-3-0-tablets-using-surelock/

如果您在申请中需要此类要求,请访问此页面....

感谢所有帮助我解决问题...

答案 2 :(得分:2)

无法隐藏系统栏。 API中没有任何内容允许它。这是因为用户总是需要访问主页和后退键,以防应用程序冻结或做一些用户只需要离开应用程序的傻瓜。您只能隐藏操作栏。

答案 3 :(得分:1)

有一种解决方法可以在所有大多数平板电脑中禁用菜单栏而无需生根。但这有点棘手,但它干净利落。目前市场上的几个知名应用程序使用此策略为其应用程序实现此禁用菜单栏功能。

  • 授予管理员权限。
  • 设置密码&使用设备管理员配置文件api
  • 锁定设备
  • 然后在本机锁定屏幕上加载任何UI。 (当然,每当活动之间发生转换时,这将显示背景锁定屏幕。但如果逻辑组织良好,那么它将是平滑的并且不会被用户注意到)
  • 当需要启用时,使用设备策略管理器对象的resetPassword(“”,0)将密码重置为“”。

答案 4 :(得分:1)

var width = innerWidth;

var height = innerHeight;

我认为此代码对您有所帮助。不会隐藏平板电脑栏 但您的应用程序适合您可以使用此设备的任何设备 (我在javascript中使用此代码用于线缆ova移动应用程序)

答案 5 :(得分:1)

您只需要SYSTEM_UI_FLAG_IMMERSIVE_STICKY |的组合SYSTEM_UI_FLAG_HIDE_NAVIGATION | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN。例如,如果您使用opengl,那么glSurfaceView就是表面:

glSurfaceView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

在底部滑动以查看底栏,几秒后它会再次隐藏。

答案 6 :(得分:0)

我相信所有Android设备都一样。

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                     WindowManager.LayoutParams.FLAG_FULLSCREEN);

我还找到了另一种解决方案,但这当然只是一个名为surelock的独立应用程序。

http://onkarsingh.sys-con.com/node/2184158

编辑:

上述代码不会隐藏Tablet Bar。对于那些希望在另一个Android设备中隐藏系统栏的人,我会留下我的答案。

答案 7 :(得分:0)

你不能隐藏它,但你可以简单地禁用它,除了家。试试this link.。使用SYSTEM_UI_FLAG_LOW_PROFILE可以调暗系统栏,使用onWindowFocusChanged()可以获得焦点并将其折叠。

答案 8 :(得分:0)

我在星系标签上发现了一个技巧,可以将它用作自助服务终端 根据{{​​3}}

您可以要求您的应用超过锁定系统,并要求返回按钮返回应用的开始活动/视图。 我为Web View应用程序做了这个

    @Override
    public void onBackPressed() {
        //here asking to go back to home page
        mWebView.loadUrl(mHomepageUrl);
    }

要求在onCreate方法上保持锁定系统:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

然后当您单击电源按钮两次时,您找回了应用程序,并且状态栏上只有后退按钮处于活动状态

所以唯一的方法就是重启平板电脑(这样你就可以使用经典的锁系统和代码来打开平板电脑)

如果访问者无法使用电源按钮,或者您是唯一拥有解锁码的人,则非常有用

答案 9 :(得分:-1)

//将代码放在活动/片段的onCreate方法

@Override
        @SuppressLint("NewApi")
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getSupportActionBar().hide();
            setContentView(R.layout.activity_main);

              getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        }

答案 10 :(得分:-1)

要在Android中创建Kiosk应用,您需要以下内容: - 覆盖onkeydown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode==KeyEvent.KEYCODE_BACK || keyCode==KeyEvent.KEYCODE_HOME){


        startActivity(new Intent(this,MainActivity.class));
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

然后将您的活动设为启动器活动,以覆盖主页按钮。 (在清单中)

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

不需要那些要求百万权限的奇怪的更衣室应用程序。你不必根电话。