需求:android10 禁止下拉状态栏,也就是禁止下拉如下图的快速设置面板(
Quick settings panel,也叫QS面板)

修改后:怎么拉都拉不下来,包括锁屏页面和正常桌面都无法下拉状态栏。

修改点:

frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java

    @ShadeViewRefactor(RefactorComponent.INPUT)private final DragDownCallback mDragDownCallback = new DragDownCallback() {/* Only ever called as a consequence of a lockscreen expansion gesture. */@Overridepublic boolean onDraggedDown(View startingChild, int dragLengthY) {//加上这个if即可在滑动锁屏页面禁止下拉if (mStatusBarState == StatusBarState.KEYGUARD) {return false;}if (mStatusBarState == StatusBarState.KEYGUARD&& hasActiveNotifications()) {mLockscreenGestureLogger.write(MetricsEvent.ACTION_LS_SHADE,(int) (dragLengthY / mDisplayMetrics.density),0 /* velocityDp - N/A */);if (!mAmbientState.isDozing() || startingChild != null) {// We have notifications, go to locked shade.mShadeController.goToLockedShade(startingChild);if (startingChild instanceof ExpandableNotificationRow) {ExpandableNotificationRow row = (ExpandableNotificationRow) startingChild;row.onExpandedByGesture(true /* drag down is always an open */);}}return true;} else if (mDynamicPrivacyController.isInLockedDownShade()) {mStatusbarStateController.setLeaveOpenOnKeyguardHide(true);mStatusBar.dismissKeyguardThenExecute(() -> false /* dismissAction */,null /* cancelRunnable */, false /* afterKeyguardGone */);return true;} else {// abort gesture.return false;}}......

frameworks/base/core/java/android/app/StatusBarManager.java

    @UnsupportedAppUsagepublic void disable(int what) {//加上这行what = what | DISABLE_EXPAND;what = what | DISABLE_EXPAND;try {final int userId = Binder.getCallingUserHandle().getIdentifier();final IStatusBarService svc = getService();if (svc != null) {svc.disableForUser(what, mToken, mContext.getPackageName(), userId);}} catch (RemoteException ex) {throw ex.rethrowFromSystemServer();}}

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

    @Overridepublic boolean onTouchEvent(MotionEvent event) {boolean barConsumedEvent = mBar.interceptTouchEvent(event);if (DEBUG_GESTURES) {if (event.getActionMasked() != MotionEvent.ACTION_MOVE) {EventLog.writeEvent(EventLogTags.SYSUI_PANELBAR_TOUCH,event.getActionMasked(), (int) event.getX(), (int) event.getY(),barConsumedEvent ? 1 : 0);}}// return barConsumedEvent || super.onTouchEvent(event);//在这里直接return true;return true;}

参考文章:
Android9.0禁止滑动锁下拉状态栏
Android源码分析

Android10 Frameworks专栏其他文章:
android10 隐藏投影
android10 修改媒体音的默认值
android10 隐藏SystemUI锁屏下的多用户图标
android10 动态添加和隐藏一级菜单

android10 禁止下拉状态栏相关推荐

  1. Android 12.0 锁屏页面禁止下拉状态栏

    目录 1.概述 2.锁屏页面禁止下拉状态栏的核心类 3.锁屏页面禁止下拉状态栏的核心功能分析和实现

  2. Android 4.2 禁止下拉状态栏

    最近在做一个界面需要禁止下拉状态栏,于是整理了一下,以后备用. import android.app.StatusBarManager;//首先导入包 StatusBarManager mStatus ...

  3. Monkey测试时禁止下拉状态栏

    Monkey 测试,随机点击.会下拉状态栏,关闭WiFi,打开GPS,打开蓝牙,打开飞行模式等一系列操作,严重干扰程序的测试,尤其是对网络状态下的耗电量测试. 下面的命令可以禁止 Monkey测试下, ...

  4. android 4.4 禁止下拉,Android开发中禁止下拉式的实现技巧

    我们开发项目的时候,经常会看到禁止的情况,而Android开发中并没有直接调用的接口,下面是爱站技术频道小编就给大家介绍的Android开发中禁止下拉式的实现技巧,希望网友们喜欢! 分享给大家供大家参 ...

  5. iOSTableview 禁止下拉,允许上拉

    1 回弹机制:bounces alwaysBounceHorizontal alwaysBounceVertical bounces:描述的当scrollview的显示超过内容区域的边缘以及返回时,是 ...

  6. Android 10 状态栏通知图标和下拉状态栏图标为白色问题

    前言 安装第三方应用,会在状态栏上面和下拉状态栏通知图标显示白色 原因 因为google在android5.0上面做了限制,为了统一系统风格.之后的状态栏icon就不能够随便用一张色彩丰富的图片了,只 ...

  7. 修改下拉状态栏点击屏幕录制后出现ANR。禁用Hotspot tethering菜单下的 “Wi-Fi hotspot。默认系统语言为英文。

    修改下拉状态栏点击屏幕录制后出现ANR: 报错信息为 rocess: com.android.systemui, PID: 5593 //          java.lang.NullPointer ...

  8. Android 9.0 SystemUI 下拉状态栏快捷开关

    SystemUI 下拉状态栏快捷开关是 QSPanel,qs_panel.xml,@+id/quick_settings_panel,本篇文章就来看看这些快捷开关是如何呈现的以及如何新增一个快捷开关? ...

  9. taro开发微信小程序禁止下拉刷新(ios下拉出现空白问题)

    一.问题描述 最近用tarojs在做一个小程序项目时,首页需要禁止下拉刷新,于是在page.json里面添加了这段话 "enablePullDownRefresh":false 全 ...

最新文章

  1. Centos 安装python 3.7 遇到 ModuleNotFoundError: No module named _ctypesmake [install] Error 1(亲测下面的红字内容)
  2. camel 使用_使用Camel从WildFly 8向WebLogic 12发送JMS消息
  3. urllib库的使用
  4. 解决macbook pro散热问题
  5. 接口测试--自定义断言设置
  6. 算法--帕斯卡三角(杨辉三角)JS写法
  7. 终极解决方案——sbt配置阿里镜像源,解决sbt下载慢,dump project structure from sbt耗时问题
  8. 使用Python迭代字符串中的每个字符
  9. 华为服务器pe安装系统教程视频教程,小U讲解华为电脑u盘重装系统win8教程
  10. 怎么写解题步骤——FIRST集、FOLLOW集、LL(1)分析法【编译原理之语法分析】
  11. R软件做线性回归分析
  12. gitea mysql8_初试drone1.0+gitea—docker安装
  13. 分布式-幂等性解决方案
  14. Mybatis 01
  15. sniperoj-pwn100-shellcode-x86-64
  16. CY系列菁染料CY3、CY5、CY5.5、CY7、CY7.5修饰标记泛素Ubiquitin Rhodamine(Ub)
  17. Combo Box 组合框控件总结
  18. oracle分区维护操作不能与其他,ORA-14048:分区维护操作不能与其它操作组合
  19. “yield”关键字有什么作用?
  20. Java中文乱码浅析及解决方案

热门文章

  1. ffmpeg获取rtsp h265_用FFmpeg将rtsp视频流保存成H264、h265文件
  2. 期货投资者教育系列丛书 铝
  3. 火车票订票管理系统c语言,基于c 的火车票订票管理系统的设计与实现.docx
  4. 适合空间受限能量收集应用的高度集成电源 IC
  5. SIMCom芯片关于GPS定位信息的的解析(AT+CGNSINF)
  6. 【最新】M1芯片Mac安装PS2021/2020卡在启动页解决教程下载方法
  7. 网易云音乐热评的规律,44万条数据告诉你
  8. Kali 2022.2 安装
  9. 中央电大计算机网络试题,2017电大统考计算机试题及答案
  10. 信息学奥赛C++编程:求出e的值