14

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

我找到了一些解决方案,例如

View v = findViewById(R.id.view_id);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN); 

但我不知道如何使用它在此处输入图像描述

我知道这是可能的http://forum.xda-developers.com/showthread.php?t=1228046有人知道怎么做吗?

4

11 回答 11

7

代码片段显示/隐藏植根的 android 平板电脑上的状态栏

隐藏:


            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();
            }
于 2014-04-21T06:47:11.430 回答
4

最后在搜索了很多时间之后,我得到了一些满足我要求的替代方案。

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

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

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

如果您希望在您的应用程序中满足此类要求,请访问此网站一次....

感谢大家帮助我解决我的问题...

于 2012-09-08T04:53:46.910 回答
2

无法隐藏系统栏。API 中没有任何内容允许这样做。这是因为用户总是需要访问 home 和 back 键,以防应用程序冻结或在用户只需要退出应用程序的地方做一些愚蠢的事情。您只能隐藏操作栏。

于 2012-08-14T18:04:21.197 回答
1

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

  • 授予管理员权限。
  • 使用设备管理员配置文件 api 设置密码并锁定设备
  • 然后在本机锁定屏幕上加载任何 UI。(当然,每当活动之间发生转换时,这将显示背景锁定屏幕。但如果逻辑组织得好,那么它会很流畅,用户不会注意到)
  • 当需要重新启用时,使用设备策略管理器对象的 resetPassword("", 0) 将密码重置为 ""。
于 2013-07-10T12:53:51.160 回答
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);

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

于 2016-01-02T05:34:59.047 回答
1
var width = innerWidth;

var height = innerHeight;

我认为这段代码对你有帮助。它不会隐藏平板电脑栏,但你的应用程序适合你可以使用的任何设备(我在 javascript 中使用了这段代码用于 cord ova 移动应用程序)

于 2015-11-11T08:04:27.707 回答
0

我相信所有的安卓设备都是一样的。

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

I also found another solution but this of course is just a separate app called surelock.

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

EDIT:

The above code doesn't hide the Tablet Bar. I'll leave my answer up for those looking to hide the System Bar in another Android Device.

于 2012-08-14T18:00:22.293 回答
0

你不能隐藏它,但你可以简单地禁用它,除了家。试试这个链接。. 使用 SYSTEM_UI_FLAG_LOW_PROFILE 您可以使系统栏变暗,并使用onWindowFocusChanged()可以获取焦点并折叠它。

于 2013-03-27T06:09:53.297 回答
0

根据三星的开发人员指南,我在 Galaxy 选项卡上发现了一个技巧,可将其用作信息亭

您可以要求您的应用程序通过锁定系统并要求返回按钮返回到您的应用程序的开始活动/视图。我为一个网络视图应用程序做了这个

    @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);

然后当你点击两次电源按钮时,你又找到了你的应用程序,状态栏上只有后退按钮是活动的

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

如果访客无法使用电源按钮,或者您是唯一拥有解锁码的人,这可能会很有用

于 2014-09-17T14:21:17.580 回答
-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);
        }
于 2014-11-28T12:01:55.127 回答
-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>

不需要要求一百万个权限的奇怪的储物柜应用程序。你不必root你的手机。

于 2015-03-10T07:19:36.523 回答