状态栏颜色问题

项目遇到个问题,状态栏会随着APK变化。

Bug描述:
        有的时候各种打开某个apk,比如settings 或者 google play,chrom浏览器等
        systemui的图标会看不清
    Bug产生的原因:
        Android 在7.1后面支持的沉浸式状态栏,apk可以根据自身配色,修改systemui状态栏的
        背景颜色 和前景文字图标颜色,但是我们自己加了一些图标以及有些图标没有做好变色
        会有各种跟apk的颜色不匹配的情况,目前发现只是有六七个图标颜色有时不对,右上角
        时间也有时不对
    动作、解决方案:
        彻底的解决方案  不允许apk修改 systemui的状态栏背景色 和 图标的颜色,即不允许切换
        深色和浅色主题,目前试过效果明显 ,sytemui 一直保持黑色背景和白色图标,整体看起来
        也很和谐

diff --git a/android/frameworks/base/core/java/android/view/View.java b/android/frameworks/base/core/java/android/view/View.java
index 8e79821..0066a63 100755
--- a/android/frameworks/base/core/java/android/view/View.java
+++ b/android/frameworks/base/core/java/android/view/View.java
@@ -22647,6 +22647,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
      * and {@link #SYSTEM_UI_FLAG_IMMERSIVE_STICKY}.
      */
     public void setSystemUiVisibility(int visibility) {
+        visibility= visibility&0xFFFFDFFF;//add by fan 2019.06.21
+        // clear SYSTEM_UI_FLAG_LIGHT_STATUS_BAR = 0x00002000 FLAG do not let apk change systemui statue bar  text|icon color
         if (visibility != mSystemUiVisibility) {
             mSystemUiVisibility = visibility;
             if (mParent != null && mAttachInfo != null && !mAttachInfo.mRecomputeGlobalAttributes) {
diff --git a/android/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java b/android/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java
index 3dab8ee..e8d11d5 100755
--- a/android/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java
+++ b/android/frameworks/base/core/java/com/android/internal/policy/PhoneWindow.java
@@ -3860,6 +3860,11 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
 
     @Override
     public void setStatusBarColor(int color) {
+        Log.w(TAG, "setStatusBarColor: " + color);
+        if(color>=0)  //add by fan do not let apk change statubar BG color 2019.06.21
+        {
+            return;
+        }
         mStatusBarColor = color;
         mForcedStatusBarColor = true;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值