最近临时转换角色修改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,问题就这么愉快的解决了。理想中的通知图标显示出来了。
解决前图:
解决后图: