java屏蔽虚拟按键代码_GraduateDesign-初试APP编写(去除虚拟按键和禁止状态栏下拉)...

在毕设项目中,为了实现Android系统的全屏无虚拟按键模式,通过Java代码隐藏虚拟按键,并修改系统底层dimens.xml文件将虚拟按键高度设为0,以达到全屏效果。同时,为防止用户通过状态栏下拉进入系统设置,注释掉PanelBar.java中的startOpeningPanel()方法,禁用了状态栏下拉功能。这种方法适用于特定场景,但不推荐在常规应用中使用。
摘要由CSDN通过智能技术生成

为了毕设的要求,需要在Android系统上运行一个app来控制硬件,今天开始这个app的编写。

首先,我们的系统将只运行这个app,也就是我们不需要状态栏,虚拟按键等。

故这里将app设置为全屏模式。

/**

* 隐藏虚拟按键,并且全屏*/

private final voidhideBottomUIMenu() {if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { //lower api

View v = this.getWindow().getDecorView();

v.setSystemUiVisibility(View.GONE);

}else if (Build.VERSION.SDK_INT >= 19) {//for new api versions.

View decorView =getWindow().getDecorView();int uiOptions =View.SYSTEM_UI_FLAG_HIDE_NAVIGATION| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |View.SYSTEM_UI_FLAG_FULLSCREEN;

decorView.setSystemUiVisibility(uiOptions);

}

}

但是在退出app后,重新打开软件则不会全屏。

这里,我在网上找了个方法,直接在系统底层将虚拟按键给禁用掉。

找到framework/base/core/res/res/values/dimens.xml,在其中把Navigation的配置改成0

0dp

0dp

这里只需要将红色的地方修改为0即可。重新烧写系统,开机后就没有下面的虚拟按键了。

但是,用户还是可以通过状态栏下拉来进入系统设置,所以我们也要禁用掉状态栏下拉的功能。

这里我找到了一个帖子,确实可用。

具体是将在frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PanelBar.java文件中的 startOpeningPanel(panel); 注释掉即可。

虽然上面的两中方法均实现了我的要求,但是我的系统是专门运行我的这一个app程序的。所以用上面的方法并没有什么不妥。但是实际中,这种方法我个人觉得还是不太好的。非不得已不要使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值