dty*_*ler 35 android root android-4.4-kitkat
我正试图在Android 4.4设备上隐藏系统状态栏.这适用于自助服务终端模式,我的应用程序将成为设备上唯一运行的应用程序.目前的目标设备是2013 Nexus 7.
该设备已植根,我已经能够完全删除底部导航栏,其中包含此帖子中的一些信息.
对于顶级状态栏,我尝试过的所有内容都只是暂时隐藏了栏.如果我的用户在屏幕顶部向下移动,状态栏会重新出现.我不想让他们看到时间,进入设置甚至看到通知.
我找到的帖子已经尝试过了:
有什么建议?
理想情况下,我希望能够编辑build.prop来执行此操作,因为我已经在为导航栏执行此操作,并且可以同时执行此操作.我正在尝试不必构建自己的android映像.
更新:
经过一些更多的工作,这似乎在某种程度上取决于android的确切构建,或其运行的设备.
有些设备,例如我一直在使用的Nexus系列,允许用户滑动以重新显示条形图.
但是,我最近在Verizon Eclipse上尝试了这个,并且该栏不再出现,这就是我想要的.
我仍然在寻找一种更好的解决方案来定位所有设备,但它可能会归结为创建我自己的android构建.
Abh*_*aan 29
我们无法阻止在kitkat设备中以全屏模式出现状态,因此制作了仍然符合要求的黑客攻击,即阻止状态栏扩展.
为了工作,应用程序没有全屏显示.我们在状态栏上放置了一个叠加层并消耗了所有输入事件.它阻止了地位的扩大.
注意:
更新
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Run Code Online (Sandbox Code Playgroud)
WindowManager manager = ((WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE));
WindowManager.LayoutParams localLayoutParams = new WindowManager.LayoutParams();
localLayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
localLayoutParams.gravity = Gravity.TOP;
localLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE|
// this is to enable the notification to recieve touch events
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL |
// Draws over status bar
WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
localLayoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
localLayoutParams.height = (int) (50 * getResources()
.getDisplayMetrics().scaledDensity);
localLayoutParams.format = PixelFormat.TRANSPARENT;
customViewGroup view = new customViewGroup(this);
manager.addView(view, localLayoutParams);
Run Code Online (Sandbox Code Playgroud)
希望这对你有所帮助
D. *_*bbs 19
我知道这是一个古老的问题,但希望它会对某人有所帮助.这里有两个非常简单的调用来禁用和启用我之前使用过的状态栏.可以从命令行使用或由Java应用程序执行:
禁用:
service call activity 42 s16 com.android.systemui
Run Code Online (Sandbox Code Playgroud)
启用:
am startservice -n com.android.systemui/.SystemUIService
Run Code Online (Sandbox Code Playgroud)
dty*_*ler 18
我确实尝试过@gonglong提供的解决方法,但我对结果不满意,因为随着解决方法的推出,UI中出现了闪光.
相反,我能够以root身份执行此操作:
settings put secure user_setup_complete 0
Run Code Online (Sandbox Code Playgroud)
我认为在普通设备上,这会导致初始设备设置启动,但在我的设备上,我已从系统中删除了该APK,因此不会发生.
这在我找不到的任何地方都没有记录,但效果很好,顶级设置UI无法向下拖动.通知区域仍然可以向下拖动.
我觉得有用的另一个设置是:
settings put global device_provisioned 0
Run Code Online (Sandbox Code Playgroud)
这会隐藏Power菜单中的飞行模式和静音模式选项,这对我的应用程序来说是一个额外的好处.
可能会有更多的副作用,但我还没有发现任何重要的事情.
此列表取自运行全新Android 4.4.3(KTU84L)的Nexus 7 2013 LTE.方括号中的数字是我拉取db文件时的值,这是在基本设置设备设置和启用开发人员/ USB之后,但在设置中进行任何其他更改之前
这个文件是在 data/data/com.android.providers.settings/databases/settings.db
注意:某些URL需要添加额外的空格字符以绕过SO过滤器
system 命名空间global 命名空间secure 命名空间小智 -1
在之前添加:setContentView(R.layout.x);
this.requestWindowFeature(Window.FEATURE_NO_TITLE); // Removes title bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.x);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40168 次 |
| 最近记录: |