最近临时转换角色修改Android系统源码,没有搞过一看源码一脸懵逼,代码太多了,关键是无法跟studio一样直接进行代码调转,折腾了一天才找到这个问题要修改的地方,其实就是Google为了规范统一和不给使用者再擦屁股,不在系统来处理图标不统一或者缺失问题,当遇到这情况是直接这是白底处理,Google是省事了,但是开发者们可就苦了,且一个白底给用户很不友好;最终参考Android N状态栏图标白底问题 - 简书 (jianshu.com) https://www.jianshu.com/p/2045693abef4
?这篇文章解决我我的问题。
?1、 修改的位置:vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\statusbar\phone\NotificationIconAreaController.java
修改:不允许系统进行着色
if (!colorize) { ? ? ? color = DarkIconDispatcher.getTint(mTintArea, v, tint); ? ? }
2、修改位置:frameworks\base\core\java\android\app\Notification.java
修改:?if (isColorized(p)) { ? ? ? ? ? ? ? ? color = getPrimaryTextColor(p); ? ? ? ? ? ? } else { ? ? ? ? ? ? ? ? color = resolveContrastColor(p); ? ? ? ? ? ? } ? ? ? ? ? ? // 2021-9-27 add start ? ? ? ? ? ? color = resolveContrastColor(p); ? ? ? ? ? ? ?// 2021-9-27 add end
OK,问题就这么愉快的解决了。理想中的通知图标显示出来了。
????????????????????????????????????????????????????????????????????解决前图:
?
解决后图:
|