一、屏蔽底部按键
1,先说状态栏
状态栏其实就是SystemUI.apk,源码目录是android/frameworks/base/packages/SystemUI/,但是状态栏的隐藏并不是修改SystemUI中的内容,而是修改android/frameworks/base/core/res/res/values/dimens.xml中的内容,这个文件是整个android系统公用的,一般不直接修改,而是通过overlay机制进行覆盖修改,用到overlay又必须提到板型目录,我们知道android/device/目录下存放的是公司目录/[产品目录]/板型目录,其中产品目录是可选的,我们公司是这样的android/device/actions/s900_vr/,其中actions是公司名,s900_vr是板型名称。修改方法是:新增文件device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/dimens.xml,这个文件看起来应该是这样的,当然你还可以添加其他的配置项的覆盖:
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="status_bar_height">0dip</dimen> </resources>
其中配置项status_bar_height的值设为0dip就会隐藏android系统的状态栏
2,再说导航栏
导航栏其实就是屏幕下方的BACK,HOME,RECENT这3个虚拟按键,修改方法是:新增文件android/device/actions/s900_vr/overlay/frameworks/base/core/res/res/values/config.xml,这个文件看起来应该是这样的,当然你还可以添加其他的配置项的覆盖:
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="config_showNavigationBar">false</bool> </resources>
frameworks\base\core\res\res\values\dimen.xml
其中配置项config_showNavigationBar的值设为false就会隐藏导航栏
如果这两个文件你不知道怎么写,那就从frameworks/base/core/res/res/values/中的dimens.xml和config.xml拷贝过去,然后再修改对应的配置项的值就好了,放心,上面说的这两个配置项都在这两个文件中。
3,最后说说如何禁止下拉
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.Java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java 2285 boolean panelsEnabled() { 2286 return (mDisabled & StatusBarManager.DISABLE_EXPAND) == 0; 2287 }
把这个函数的返回值改为false:
boolean panelsEnabled() { return false; }
就可以禁止下拉,这样当你从屏幕上方往下滑动的时候,是不会显示设置和Notification的。
如果找不到类 PhoneStatusBar.Java就需要再下面的类中修改
base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
boolean panelsEnabled() { return false; }
二、禁止锁屏
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">false</bool> 改为 true;即默认禁止锁屏