Android隐藏和禁用通知(状态)栏

Android隐藏和禁用通知(状态)栏,第1张

概述通过使用下面的代码,我可以通过全屏隐藏通知栏android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"要么getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);但我想要做的是完全禁用状态栏.我

通过使用下面的代码,我可以通过全屏隐藏通知栏

androID:@R_404_5969@="@androID:style/@R_404_5969@.Holo.NoActionbar.Fullscreen"

要么

getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN, WindowManager.LayoutParams.FLAG_FulLSCREEN);

但我想要做的是完全禁用状态栏.我正处于所谓的“自助服务终端模式”,我想确保用户不能从顶部挡板上滑下手指.上述两种解决方案都可以隐藏通知栏,但它不适用于在应用程序中完全禁用它.

这可能吗?

解决方法:

而不是跟随其他答案的链接,这是我做的.

如果下拉(即使在全屏幕应用程序中),此解决方案也不允许用户“查看”处于“预览”状态的状态栏,但它不允许用户将状态栏拉到其完整状态以查看设置,通知等

您必须先在AndroIDManifest.xml中添加权限

<uses-permission androID:name="androID.permission.SYstem_ALERT_WINDOW"/> 

然后添加另一个名为customVIEwGroup.java的类(Java文件)并将此代码放入其中:

import androID.content.Context;import androID.util.Log;import androID.vIEw.MotionEvent;import androID.vIEw.VIEwGroup;public class customVIEwGroup extends VIEwGroup {    public customVIEwGroup(Context context) {        super(context);    }    @OverrIDe    protected voID onLayout(boolean changed, int l, int t, int r, int b) {    }    @OverrIDe    public boolean onIntercepttouchEvent(MotionEvent ev) {        Log.v("customVIEwGroup", "**********Intercepted");        return true;    }}

在完成这两个设置之后,您可以将其添加到主onCreate()中

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 eventsWindowManager.LayoutParams.FLAG_NOT_touch_MODAL |// Draws over status barWindowManager.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);

此解决方案禁用始终向下拉状态栏的功能,直到您的应用关闭.如果您不想每次都关闭应用,则必须在暂停时删除此 *** 作.

信用从This Answer开始到@Abhimaan Madhav

总结

以上是内存溢出为你收集整理的Android隐藏和禁用通知(状态)栏全部内容,希望文章能够帮你解决Android隐藏和禁用通知(状态)栏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存