为了毕设的要求,需要在Android系统上运行一个app来控制硬件,今天开始这个app的编写。
首先,我们的系统将只运行这个app,也就是我们不需要状态栏,虚拟按键等。
故这里将app设置为全屏模式。
/**
* 隐藏虚拟按键,并且全屏
*/
private final void hideBottomUIMenu() {
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
这里只需要将红色的地方修改为0即可。重新烧写系统,开机后就没有下面的虚拟按键了。
链接:http://blog.csdn.net/huanghai381/article/details/51684485
但是,用户还是可以通过状态栏下拉来进入系统设置,所以我们也要禁用掉状态栏下拉的功能。
这里我找到了一个帖子,确实可用。
具体是将在frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PanelBar.java文件中的 startOpeningPanel(panel);
注释掉即可。
http://blog.csdn.net/u011913612/article/details/72478517
虽然上面的两中方法均实现了我的要求,但是我的系统是专门运行我的这一个app程序的。所以用上面的方法并没有什么不妥。但是实际中,这种方法我个人觉得还是不太好的。非不得已不要使用。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章