简单的方法来隐藏在Android ICS系统栏简单的方法来隐藏在Android ICS系统栏(Eas

2019-05-13 20:27发布

我会给我的ICS平板电脑,为用户完成调查,所以我希望用户只用我的应用程序工作。 他们不应该能够切换到主屏幕,按后退按钮等等,所以我想完全隐藏在系统栏中。

我的平板电脑扎根,我知道像一些应用程序这可以帮助我,但我并不需要这个应用程序的所有附加功能。

我发现这个教程 ,可以帮助我,但如果我可以添加代码,做我自己,这将是巨大的。

Answer 1:

HideBar具有特别是对于这种使用情况kiosk模式。

免费下载,请http://ppareit.github.com/HideBar/ 。 您也可以找到它的市场https://play.google.com/store/apps/details?id=be.ppareit.hidebar 。

如果你想将其集成到自己的测试/测量应用程序,您可以随时联系开发者(见电子邮件中的链接)。 该代码可以解释或Intent可以提供做躲藏。



Answer 2:

很多在互联网上搜索后,我设法让系统栏隐藏,并出现在使用4.2设备:

隐藏:

Runtime.getRuntime().exec("service call activity 42 s16 com.android.systemui");

或用79代替42 API小于14。您可能还需要包括SET_DEBUG_APP许可,在这种情况下,你需要有系统的密钥签名或安装在/系统/应用/目录下的应用程序。

显示:

Runtime.getRuntime().exec("am startservice --user 0 -n com.android.systemui/.SystemUIService");

另外一些人使用-a(而不是-n)选项,虽然这是导致我的设备上的错误:

错误:未找到; 没有服务启动。

对于Android 4.4系统,有一个叫其中隐藏的系统和状态栏都沉浸式模式的新功能。 该系统的用户界面是由用户通过使用边缘滑动的从屏幕的顶部或底部切换。 有关详细信息看一看:

http://developer.android.com/reference/android/view/View.html#setSystemUiVisibility(int)

在Android的奇巧使用新的沉浸式模式

例如:

getWindow().getDecorView().setSystemUiVisibility(
          View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_IMMERSIVE)


Answer 3:

检查此链接:(需要root) http://android.serverbox.ch/?p=306

类似的问题在这里也贴: 有没有办法隐藏在Android 3.0的系统吧? 这是一个内部设备,我管理导航

或尝试HideBar http://ppareit.github.com/HideBar/

其实你可以简单地把系统酒吧“熄灯”模式下,系统栏按钮和通知被变暗。

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


Answer 4:

我想添加一些信息,以现有的答复,希望这将是有用的人。

要获得真正的全屏幕上我的低成本中国平板电脑工作,我需要编辑位于文件

system/build.prop

替换文本

ro.property.tabletUI=true

#ro.property.tabletUI=true

(我的评论线)。 在那之后,我可以用得到一个全屏幕

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"

在minfest.xml每个活动

只有当你卖你的应用程序平板电脑这个解决方案是好的, 需要root权限编辑system/build.prop因此,它不是对所有的解决方案 ,所以请不要downvote这个小贡献。

编辑:我发现我的平板电脑对帧硬件按钮(主页,菜单,后退)。 因此Android让我隐藏系统栏中。 我tryed与有不是没有成功的硬件按钮,其他平板电脑。



Answer 5:

谷歌有意仅用于消费者的Android。 他们整合系统UI栏更紧密地的Android ICS(4.0),以防止有人生根设备和杀害酒吧的方式。 试图删除系统栏过程将防止从OS完全启动。

如果你想访问主屏幕限制的用户,那么你的运气与Android ICS的。 我建议找一个片剂生产谁将会预装在设备与Android 2.3。 如果不是这样,也可以使用的有根的Android 3.X设备。

如果你打算使用Android的亭或锁定装置,那么你会过得更好瞄准的操作系统,更加开放一点。



Answer 6:

我发现了一个解决方案,在我使用的情况下,通过隐藏菜单栏甚至不是源于设备的工作原理就像一个魅力:

设置该标志

layoutparams.flags = 0x80000000 | layoutparams.flags;

我窗口的布局参数简单的伎俩!

下面是我使用的完整的片段:

    Window window = getWindow();
    android.view.WindowManager.LayoutParams layoutparams = window.getAttributes();
    layoutparams.flags = 0x80000000 | layoutparams.flags;
    window.setAttributes(layoutparams);

在我的活动的onCreate。

要了解这一点,我扭转engeneered非系统的.apk我发现,在某种程度上能够做到这一点。

根据官方文档:

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS

认为“0x80000000的”是引入如在API级21的系统常数FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS,它基本上表示“此窗口是负责绘制为系统条的背景”。 并且由于我不是手动绘制任何系统栏,示出了没有菜单栏。

我只测试了此一对Moverio BT-200的运行Android ICS 4.0.3,因为这是我目前工作的设备上,也因为现在我没有其他的设备下我的手到19之前运行的API级别对它进行测试。



Answer 7:

有一种变通方法来禁用菜单栏(不隐藏)在所有最全片没有生根。 但是,这是有点棘手,但它的作品干净。 在市场目前使用这种策略有几个知名的应用程序,以实现他们的应用程序禁用此菜单栏功能。

  • 授予管理员权限(需要一个时间用户参与激活)。
  • 设置密码及使用设备管理文件API编程锁定装置。
  • 然后加载什么都用户界面上的本机锁定屏幕的顶部。 (当然,这将显示背景锁定屏幕每当一个过渡活动之间发生的情况。但是,如果逻辑被组织很好,那么这将是平滑&由用户较少注意到)
  • 当需要启用回来,重置密码“”使用resetPassword(“”,0)设备规范管理的对象。


Answer 8:

为了补充已经给出了答案,并在情况下,有人需要一个类似的行为有用,但本教程针对Android设备4.0或更高版本,它会告诉你如何隐藏导航栏和状态栏(他们将重新出现时,屏幕再次感动):

https://developer.android.com/training/system-ui/navigation.html

我知道这是不是你需要的究竟是什么,但可能是别人在看这个问题非常有用。



文章来源: Easy way to hide system bar on Android ICS