当前位置: 首页 > article >正文

Android 屏蔽\取消(禁止)下拉通知栏包括二级菜单下拉

修改方案很简单,就是直接返回类型进行屏蔽掉,让下拉效果失去,有些修改建议一起修改,不然会有意想不到的冲突,单独修改需要验证再验证,确保无其他bug产生。

有些版本可能方法的位置不一样,需要搜索一番才能尝试修改。

第一种情况,依据版本看panelsEnabled()方法的位置,if判断后其他代码不用注释掉

/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java

 boolean panelsEnabled() {
  if(true)  return false;  //*/add start
 return (mDisabled1 & StatusBarManager.DISABLE_EXPAND) == 0 && !ONLY_CORE_APPS;
    }

 第二种:

/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java

 @Override
    public boolean panelEnabled() {
        if(true) return false;  //*/add start
        return mCommandQueue.panelsEnabled();
    }

第三种:禁止解锁状态的亮屏中下拉通知菜单【单个验证有效】

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar$ 

CommandQueue.java

// TODO(b/118592525): add multi-display support if needed.
    public boolean panelsEnabled() {
        if(true) return false;  //*/add start
        final int disabled1 = getDisabled1(DEFAULT_DISPLAY);
        final int disabled2 = getDisabled2(DEFAULT_DISPLAY);
        return (disabled1 & StatusBarManager.DISABLE_EXPAND) == 0
                && (disabled2 & StatusBarManager.DISABLE2_NOTIFICATION_SHADE) == 0
                && !ONLY_CORE_APPS;
    }
 

第四种:不加载下拉高度;禁止锁屏状态的亮屏中下拉通知菜单 +  【单个验证有效】

/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java 

private void setQsExpansion(float height) {
        if(true) return;  //*/add start

height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
        mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;

 

第五种:如何删除屏蔽二次下拉菜单 +【同上第四个有点修改差异】

/vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java 

private void setQsExpansion(float height) {
        //height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);高度直接等于后者
        height = mQsMinExpansionHeight;//*/add start

        mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
        if (height > mQsMinExpansionHeight && !mQsExpanded && !mStackScrollerOverscrolling) {
            setQsExpanded(true);
        } else if (height <= mQsMinExpansionHeight && mQsExpanded) {
            setQsExpanded(false);
            if (mLastAnnouncementWasQuickSettings && !mTracking && !isCollapsing()) {
                announceForAccessibility(getKeyguardOrLockScreenString());
                mLastAnnouncementWasQuickSettings = false;
            }
        }

 


http://www.kler.cn/a/375923.html

相关文章:

  • 从线性代数到unity mvp矩阵
  • 【Linux】编辑器vim 与 编译器gcc/g++
  • 【万兴科技-注册_登录安全分析报告】
  • 如何批量裁剪图片?5个软件帮助你快速进行图片裁剪
  • Linux高阶——1027—
  • 手动搭建koa+ts项目框架(node开发配置环境变量)
  • Linux云计算 |【第五阶段】CLOUD-DAY6
  • C++中使用seekg函数进行随机读写
  • 基于SSM+VUE宠物医院后台管理系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
  • 金融文本情感分析模型
  • 前端之html(一)
  • 【2024最新开源】六足机器人控制算法
  • buck电源中电感大小的计算
  • Ubuntu:通过ssh链接另外一台Ubuntu
  • npm入门教程13:npm workspace功能
  • 【基础语法】Java Scanner hasNext() 和 hasNextLine() 的区别
  • HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解
  • LeetCode100之二叉树的中序遍历(94)--Java
  • go语言中协程详解
  • Java8的新特性——Stream与completableFuture详解
  • 数字隔离器与光隔离器有何不同?---腾恩科技
  • 「Mac畅玩鸿蒙与硬件18」鸿蒙UI组件篇8 - 高级动画效果与缓动控制
  • spreadjs实现类似于企业微信的协同提示
  • Linux 查看 nginx 安装目录和配置文件路径
  • LeetCode994. 腐烂的橘子(2024秋季每日一题 54)
  • 智能护栏碰撞监测终端:内蒙古高速的安全守护者