代码之家  ›  专栏  ›  技术社区  ›  arjun babu

如何在我的应用程序中的特定活动中锁定状态栏和通知栏

  •  1
  • arjun babu  · 技术社区  · 7 年前

    我正在开发一个与考试相关的android应用程序。当考试开始时,我需要锁定状态栏和通知栏。我使用了下面的代码,但它只是隐藏状态栏和通知栏。

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    
            //Remove notification bar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    

    是锁定状态栏和通知栏而不是隐藏它们的任何方法。对于任何积极的回应,请提前感谢。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Orvenito    7 年前

    锁定通知栏是什么意思?你是说现在没有收到任何通知?

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 
    

    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);
    

    或者看看这个贴出的问题: Disable the notification panel from being pulled down