Android 7.0的禁止锁屏状态下的状态栏下拉,需要修改两个文件

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java需要如下代码,

在handleQsTouch方法中修改如下:

private boolean handleQsTouch(MotionEvent event) {        final int action = event.getActionMasked();        if (action == MotionEvent.ACTION_DOWN && getExpandedFraction() == 1f                && mStatusBar.getBarState() != StatusBarState.KEYGUARD && !mQsExpanded                && mQsExpansionEnabled) {            // Down in the empty area while fully expanded - go to QS.            mQsTracking = true;            mConflictingQsExpansionGesture = true;            onQsExpansionStarted();            mInitialHeightOnTouch = mQsExpansionHeight;            mInitialTouchY = event.getX();            mInitialTouchX = event.getY();        }        if (!isFullyCollapsed()) {            handleQsDown(event);        }        if (!mKeyguardShowing && !mQsExpandImmediate && mQsTracking) {    //在这里加上!mKeyguardShowing,如果是正显示锁屏,就不处理状态栏的下拉            onQsTouch(event);            if (!mConflictingQsExpansionGesture) {                return true;            }        }......

在setQsExpanded方法中修改如下:

    private void setQsExpanded(boolean expanded) {        if(mKeyguardShowing) return;    //如果现在正显示锁屏,禁止QS下拉        boolean changed = mQsExpanded != expanded;        if (changed) {            mQsExpanded = expanded;         // [HQ01596799]-yuminfeng 20151109 modify begin            if(mQsExpanded){                Intent bgtDlgOnIntent = new Intent(Intent.ACTION_SHOW_BRIGHTNESS_DIALOG);                mContext.sendBroadcast(bgtDlgOnIntent);            }            else{                Intent bgtDlgOffIntent = new Intent("android.intent.action.CLOSE_BRIGHTNESS_DIALOG");                mContext.sendBroadcast(bgtDlgOffIntent);            }         // [HQ01596799]-qiukangwen 20151109 modify end            updateQsState();            requestPanelHeightUpdate();            mNotificationStackScroller.setInterceptDelegateEnabled(expanded);            mStatusBar.setQsExpanded(expanded);            mQsPanel.setExpanded(expanded);            mNotificationContainerParent.setQsExpanded(expanded);        }    }

在shouldQuickSettingsIntercept方法中修改如下:

    /**     * @return Whether we should intercept a gesture to open Quick Settings.     */    private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {        if (!mQsExpansionEnabled || mCollapsedOnDown) {            return false;        }        View header = /*mKeyguardShowing ? mKeyguardStatusBar :*/ mHeader;    //不判断是否正显示锁屏,将默认header设置为mHeader        boolean onHeader = x >= header.getX() && x <= header.getX() + header.getWidth()                && y >= header.getTop() && y <= header.getBottom();        if (mQsExpanded) {            return onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0) && isInQsArea(x, y);        } else {            return onHeader;        }    }

这个文件到此就修改完成了,还需要再修改一个文件PhoneStatusBar.java,和NotificationPanelView.java处于同一目录

文件路径为frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java,代码修改如下:

    @Override    public boolean onDraggedDown(View startingChild, int dragLengthY) {        if (hasActiveNotifications() && false) {    //屏蔽通知栏的下拉            EventLogTags.writeSysuiLockscreenGesture(                    EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_SWIPE_DOWN_FULL_SHADE,                    (int) (dragLengthY / mDisplayMetrics.density),                    0 /* velocityDp - N/A */);            // We have notifications, go to locked shade.            goToLockedShade(startingChild);            return true;        } else {            // No notifications - abort gesture.            return false;        }    }

 

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 一款常用的 Squid 日志分析工具
  3. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  4. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  5. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  6. Android(安卓)Telechips89xx背光控制流程
  7. Parcelable接口的使用(跨进程,Intent传输)
  8. Android(安卓)View 绘制流程之四:绘制流程触发机制
  9. Android(安卓)aidl学习笔记-服务端

随机推荐

  1. 搭建 Android(安卓)开发环境,初试HelloWor
  2. 显示gif动画(帧动画的播放)
  3. android如何保留小数点后x位数字
  4. android关闭重启app
  5. 代码论坛如何通过C的方式在android NDK下
  6. Android开发(一):环境搭建
  7. android游戏引擎andengine学习系列二:简单
  8. Android(安卓)ViewPager事件滑动监听修改
  9. Android(安卓)Material Design之Coordina
  10. 【073】Android(安卓)数据存储(SQLite)