赞
踩
原文:http://blog.csdn.net/xiaogezq0/article/details/8662464
(1)开始为了隐藏systemui利用过 kill com.android.systemui线程进行的隐藏,但是总有一个com.android.systemui.SystemUIService进行启动
我开始还是比较的坏的就弄了一个监听每500毫秒进行检测一次进行查杀
代码:
(2)通过长时间研究我研究到了SystemUI.apk,我就就想对这个东西进行操作了。开始我删除掉后,systeui还是运行着,我就用kill命令直接杀掉这个线程,然后就开始报错了。说找不到SystemUI什么的。及其的烦人,不过重新启动就可以了。就没有那个错误了。
苍天真的不负有心人,本人找到一个更好的方法,原来大概是这样的:通过命令移除SystemUI.apk放到一个文件夹中,然后重新启动com.systemui.SystemUIService这个服务
就可以了。如果想恢复就把SystemUI.apk移到/system/app/下并且重新启动com.systemui.SystemUIService这个服务
代码参照:
(3)
这种更牛逼,什么还自己通过命令操作。都是也路子。人家google给咱提供的有接口直接用就行啊
直接代码参考吧:
- /**
- * 设置系统栏可见性
- */
- public static void setSystemBarVisible(final Activity context,boolean visible) {
- int flag = context.getWindow().getDecorView().getSystemUiVisibility(); // 获取当前SystemUI显示状态
- // int fullScreen = View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN;
- int fullScreen = 0x8; // 4.1 View.java的源码里面隐藏的常量SYSTEM_UI_FLAG_SHOW_FULLSCREEN,其实Eclipse里面也可以调用系统隐藏接口,重新提取下android.jar,这里就不述了。
- if(visible) { // 显示系统栏
- if((flag & fullScreen) != 0) { // flag标志位中已经拥有全屏标志SYSTEM_UI_FLAG_SHOW_FULLSCREEN
- context.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); // 显示系统栏
- }
- } else { // 隐藏系统栏
- if((flag & fullScreen) == 0) { // flag标志位中不存在全屏标志SYSTEM_UI_FLAG_SHOW_FULLSCREEN
- context.getWindow().getDecorView().setSystemUiVisibility(flag | fullScreen); // 把全屏标志位加进去
- }
- }
- }
- /**
- * 判断状态栏是否显示
- */
- public static boolean isSystemBarVisible(final Activity context) {
- int flag = context.getWindow().getDecorView().getSystemUiVisibility();
- // return (flag & View.SYSTEM_UI_FLAG_SHOW_FULLSCREEN) != 0;
- return (flag & 0x8) == 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。