Android10 状态栏禁止下拉

1. 非锁屏

在packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java

修改panelEnabled()方法

//返回false禁用,返回true启用,修改为false即可
  @Override
  public boolean panelEnabled() {
      return false;
      //return mCommandQueue.panelsEnabled();
  }

但这个方法不能禁止锁屏状态下下拉状态栏。

2. 锁屏

在base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java

修改handleQsDown(MotionEvent event)方法:

    private void handleQsDown(MotionEvent event) {
        if (event.getActionMasked() == MotionEvent.ACTION_DOWN
                && shouldQuickSettingsIntercept(event.getX(), event.getY(), -1)) {
        if(想要启动禁止锁屏){
            return;
        }
    }

在该方法前面就return就可以禁止锁屏界面下拉状态栏

3. 特殊情况

如果发出禁止指令的时候设备状态栏正处于下拉状态,那么应该先让状态栏收起来。

这里也分锁屏/非锁屏

3.1 非锁屏

在适当的位置调用StatusBar的animateCollapseQuickSettings()方法,这是关闭qs。

与之对应的还有StatusBar的animateExpandNotificationsPanel()方法,展开通知画板。

3.2 锁屏

在适当位置添加NotificationPanelView的closeQs()方法

你可能感兴趣的:(Android,Android,SystemUI,android)