Android11屏蔽禁用下拉状态栏

这篇具有很好参考价值的文章主要介绍了Android11屏蔽禁用下拉状态栏。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做项目软件时,会遇到客户提出屏蔽禁用下拉状态栏,其实禁用下拉状态栏主要包含两个地方

第一个地方就是解锁后进入到桌面时,在顶部和中部下拉时会将状态栏拉出来显示

第二个地方就是锁屏界面在顶部和中部下拉时会将状态栏拉出来显示

具体屏蔽禁用这两处的下拉状态栏修改如下:

1. 屏蔽禁用解锁后进入到桌面时,在顶部和中部下拉时会将状态栏拉出来显示,修改如下:

diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
old mode 100644
new mode 100755
index 96d6ecb..b938044
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -371,11 +371,14 @@ public class CommandQueue extends IStatusBar.Stub implements CallbackController<
 
     // TODO(b/118592525): add multi-display support if needed.
     public boolean panelsEnabled() {
-        final int disabled1 = getDisabled1(DEFAULT_DISPLAY);
+    	
+    	return false;
+		
+        /*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;
+                && !ONLY_CORE_APPS;*/
     }
 
     public void addCallback(Callbacks callbacks) {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
old mode 100644
new mode 100755
index 790b2585..2582e4a
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -185,37 +185,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
         // TODO: change the method signature to use (boolean inputFocusTransferStarted)
         @Override
         public void onStatusBarMotionEvent(MotionEvent event) {
-            if (!verifyCaller("onStatusBarMotionEvent")) {
-                return;
-            }
-            long token = Binder.clearCallingIdentity();
-            try {
-                // TODO move this logic to message queue
-                mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
-                    mHandler.post(()-> {
-                        StatusBar statusBar = statusBarLazy.get();
-                        int action = event.getActionMasked();
-                        if (action == ACTION_DOWN) {
-                            mInputFocusTransferStarted = true;
-                            mInputFocusTransferStartY = event.getY();
-                            mInputFocusTransferStartMillis = event.getEventTime();
-                            statusBar.onInputFocusTransfer(
-                                    mInputFocusTransferStarted, false /* cancel */,
-                                    0 /* velocity */);
-                        }
-                        if (action == ACTION_UP || action == ACTION_CANCEL) {
-                            mInputFocusTransferStarted = false;
-                            statusBar.onInputFocusTransfer(mInputFocusTransferStarted,
-                                    action == ACTION_CANCEL,
-                                    (event.getY() - mInputFocusTransferStartY)
-                                    / (event.getEventTime() - mInputFocusTransferStartMillis));
-                        }
-                        event.recycle();
-                    });
-                });
-            } finally {
-                Binder.restoreCallingIdentity(token);
-            }
+            
         }
 
         @Override

2. 屏蔽禁用锁屏界面在顶部和中部下拉时会将状态栏拉出来显示,修改如下:

diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
old mode 100644
new mode 100755
index a4a5819..89791ff
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -6651,6 +6651,11 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd
         /* Only ever called as a consequence of a lockscreen expansion gesture. */
         @Override
         public boolean onDraggedDown(View startingChild, int dragLengthY) {
+
+            if (mStatusBarState == StatusBarState.KEYGUARD) {
+                return false;
+            }
+			
             boolean canDragDown = hasActiveNotifications()
                     || mKeyguardMediaController.getView().getVisibility() == VISIBLE;
             if (mStatusBarState == StatusBarState.KEYGUARD && canDragDown) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
old mode 100644
new mode 100755
index 799e16c..231e1ec
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java
@@ -130,6 +130,8 @@ public class NotificationPanelViewController extends PanelViewController {
 
     private static final boolean DEBUG = false;
 
+	private boolean mUnallowedState = true;
+
     /**
      * Fling expanding QS.
      */
@@ -1674,6 +1676,11 @@ public class NotificationPanelViewController extends PanelViewController {
     }
 
     private void setQsExpansion(float height) {
+
+        if(mUnallowedState) {
+           return;
+        }
+
         height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight);
         mQsFullyExpanded = height == mQsMaxExpansionHeight && mQsMaxExpansionHeight != 0;
         if (height > mQsMinExpansionHeight && !mQsExpanded && !mStackScrollerOverscrolling

以上在Android11系统平台亲测有效,下拉状态栏包括解锁后在桌面下拉和在锁屏界面下拉,下拉又包括在顶部下拉和在屏幕中间部位下拉,所以总共有4处修改,思路主要就是屏蔽代码执行达到屏蔽禁用的效果文章来源地址https://www.toymoban.com/news/detail-682179.html

到了这里,关于Android11屏蔽禁用下拉状态栏的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android 13.0 SystemUI下拉状态栏背景增加高斯模糊背景

    在13.0的产品开发中,发现现在很多产品都是高斯模糊背景的,这种高斯模糊背景看起来效果很不错,产品开发需要SystemUI下拉状态栏背景也是高斯模糊背景,所以就要来实现下拉状态栏高斯模糊背景 在系统systemui,其实它的布局结构是比较复杂,里面管理各种服务,导航栏,

    2024年02月05日
    浏览(102)
  • android 13.0 SystemUI状态栏下拉快捷添加截图快捷开关

    在13.0的系统产品rom定制化开发中,对SystemUI的定制需求也是挺多的,在下拉状态栏中 添加截图快捷开关,也是常有的开发功能,下面就以添加 截图功能为例功能的实现 在Systemui的下拉状态栏的相关源码中,在快捷设置区域QSPanel及点击事件流程 分析 SystemUI下拉之后的那些快捷

    2024年02月03日
    浏览(44)
  • Android 14.0 SystemUI下拉状态栏时间格式的修改(一)

    在14.0系统产品rom定制化开发中,原生systemui的系统下拉状态栏时间格式为 某月某日周几 这样的格式 根据产品需要修改为年月日周几 某时某分这种格式 这就需要修改 显示时间的格式 在更新时间时 按照这个格式更新就可以了,接下来看如何实现这个功能 在系统systemui,其实

    2024年04月25日
    浏览(36)
  • Android 14.0 SystemUI下拉状态栏时间格式的修改(二)

    在14.0的系统rom产品开发中,在通过上一篇博客已经实现修改了时间显示格式,但是客户修改下拉状态栏时间显示格式为分行显示,即第一行显示时间用大字体显示, 第二行用小字体显示当前日期和周几这样的显示格式 于是继续进行修改 在SystemUI下拉状态栏时间格式的修改

    2024年04月22日
    浏览(38)
  • Android 12.0下拉状态栏通知栏的通知设置默认展开

    在12.0的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的,功能开发需要要求通知默认展开,所以就要从通知的加载流程分析 如图:    

    2024年02月07日
    浏览(47)
  • Android 12 MTK SystemUI 下拉状态栏 UI定制化开发(1)

    1. 概述 距离上次更新有一周时间过去了,忙着工作,没来得及更新博客,各位看官老爷久等了,这次打算写一个UI定制系列,关于MTK  android 12  UI定制吧!   2. 效果图 原生效果图:  定制后效果图: 3.修改路径 4.总结 想要修改这块UI界面,需要梳理出整体流程是怎么过来,

    2024年02月13日
    浏览(30)
  • Android 11 系统开发增加低电量弹窗提示 手机 平板 车载 TV 投影 通用

    SystemUIService 中启动PowerUI 主要修改 5、在symbols 文件中添加对应java-symbol方便Framework代码引用code

    2024年03月15日
    浏览(30)
  • Android 11.0 SystemUI禁用长按recent键的分屏功能

    在11.0的系统rom产品定制化中,系统对于多窗口模式默认会有分屏功能的,但是在某些产品中,需要禁用分屏模式,所以需要在导航栏中 禁用长按recent的分屏模式功能,接下来分析下相关分屏模式的实现 在Android应用程序中,导航栏(NavigationBarView)是一个重要的UI组件,默认位于屏

    2024年02月20日
    浏览(78)
  • Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现一

    在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 在

    2024年01月17日
    浏览(40)
  • Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏通知栏都居中功能实现

    在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏通知栏功能中,通知栏总是显示在右边,并且是在右边居中显示的, 由于需要和竖屏显示一样,所以就需要用到在时钟下面显示通知栏,然后同样需要居中显示通知栏,所以就来分析下相关的

    2024年02月20日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包