MIUINativeNotifyIcon icon indicating copy to clipboard operation
MIUINativeNotifyIcon copied to clipboard

Fix the native notification bar icon function abandoned by the MIUI development team.

MIUI 原生通知图标

Blank Blank Blank Blank Blank Telegram


Fix the native notification bar icon function abandoned by the MIUI development team.
修复被 MIUI 开发组丢弃的原生通知图标,支持 MIUI 12、12.5、13 以及最新版本。

Developer

酷安 @星夜不荟

适配说明

  • 此模块仅支持 LSPosed(作用域“系统界面”)、~~EdXposed(随时停止支持)~~、不支持太极、无极

  • 请确保你使用的是 MIUI 官方版本,任何第三方官改包发生的问题,开发者没有义务去解决和修复,请自求多福

  • 目前最低支持基于 Android 9 版本的 MIUI 12 或 MIUI 12.5(最低建议)

  • 建议最低从 MIUI 12.5 2021-5-18 开发版以后开始使用模块,之前的版本可能或多或少存在 MIUI 自身 BUG 不生效、黑白块的问题

  • 请始终保持最新版本的 LSPosed,旧版本可能会出现 Hook 不生效的问题,若最新版本依然不生效请在作用域中长按“系统界面”(“系统 UI”)选择重新优化

特殊问题说明

无法保证在全部支持的系统版本中适配经典风格的通知中的小图标 (MIUI 样式通知栏)。

此功能在部分 Android 11/12 稳定版或 DEV 版本机型可能会发生 BUG 导致不生效,暂时无法排查和修复,属于已知问题,经测试 长按“系统界面”(“系统 UI”)选择重新优化 也不能修复。

经过我一晚上的调试,无论使用何种方式,都不能修复此问题,暂时无解,无法排查是 LSPosed 的问题还是 MIUI 的问题 (MIUI 问题的可能性大一些)。

另外,此功能无法在 Android 10 机型工作,将不做修复。

临时解决方案: 若想使用原生风格图标建议在 设置 > 通知与控制中心 > 通知显示设置 中调整为 原生样式

请勿用于非法用途

  • 本模块完全开源免费,如果好用你可以打赏支持开发,但是请不要用于非法用途。

  • 本模块发布地址仅有 Xposed-Modules-RepoRelease蓝奏云酷安应用市场 ,从其他非正规渠道下载到的版本或对您造成任何影响均与我们无关。

贡献通知图标优化名单

此项目是 AndroidNotifyIconAdapt 项目的一部分,详情请参考下方。

历史背景

这个模块诞生来源于 MIUI 的乱改和不规范,本来 MIUI 9 之后,官方给出了原生通知图标样式,后面由于用户反应通知栏经常出现黑白块。

这当然不是系统的错,而是国内 APP 和 MIPUSH 的通知极其不规范的通知图标设计。

但是呢,接到反馈后 MIUI 开发组选择直接忽略这个问题,在 2021-5-18 的开发版开始,把全部通知图标都改成了 APP 的彩色图标,使得之前拥有自有样式的原生图标也被破坏。

对于 Android 开发者来说,官方文档中的 setSmallIcon 不再适用于魔改后的 MIUI,这将会严重破坏非常多的状态图标。

当然,国内的手机生态除了 MIPUSH 的营销通知就是社交软件的通知,可能大部分人都不会在意这件事情。

但是,这个模块就是为了修复被 MIUI 开发组忽略的图标问题才诞生的,并完美地给 MIUI 修复了黑白块图标的问题。

效果展示

探索历程

原生 Android 的小图标和通知图标具有状态性。



而 MIUI 最近的版本直接破坏了这一状态性,全部设置为 APP 的图标,不仅难看而且你无法下拉通知栏区别这些图标代表什么。



同样地,通知面板的图标同样遵守这一状态性。




而 MIUI 做了什么呢?




不曾记得是什么版本开始,MIUI 把通知图标改成了这个鬼样子,寻找开发组提案也是无人问津,最后转念一想,自己干吧。

由于目前大量通知图标都来自 MIPUSH 发出的营销通知,而 MIPUSH 的图标都是统一的彩色应用图标,很多应用也没有适配这一特性, 在通知栏广告满天飞的情况下,MIUI 选择放弃原生通知功能,而做出这种违反原生通知规则的做法,而这些彩色图标被设置为单色调图标,也确实会发生黑白块的问题,但是同时又会破坏遵守规范的图标。

真的没有办法了吗?在不断探索下,我找到了原生支持色彩判断的类。

com.android.internal.util.ContrastColorUtil

这个类中有一个方法可以拿出来判断图标的灰度效果。

ContrastColorUtil.getInstance().isGrayscaleIcon(drawable)

问题就被解决了,顺便修了一下被 MIUI 破坏的通知图标以及优化了一下应用本身方块图标的圆角......

最后,我想大声问一句 MIUI 开发组:“就这?” 就这么简单的问题为什么拖了这么长时间也没有结论,还要交给用户去修复,这真的是一种负责任的表现吗?

后来一想,也是啊,被国内生态毒害的用户,怎么可能会去想到这些问题呢,最后只能是我自作多情,还对 MIUI 留有一点情怀吧。

——来自一个无可奈何的 MIUI 老用户

后记

近期重新适配了 MIUI 12、12.5、13 版本,每个版本的图标设置方法都不一样,而且改的乱七八糟的,我都要无语了,只能用了很多折中方案,毕竟我也没有那么大精力每个版本去修复,实在是累了。

特地的把自己能有的小米手机刷成各种 MIUI 版本去为酷友做专项适配,我也是很累了,也希望你们能够多多支持,也能让 MIUI 做得更好。

MIUI 再不重写,怕是永远会变成安卓之光。雷军,金凡!!

捐赠支持

  • 工作不易,无意外情况此项目将继续维护下去,提供更多可能,欢迎打赏。

隐私政策

许可证

Copyright (C) 2019-2022 Fankes Studio([email protected])

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Powered by YukiHookAPI

版权所有 © 2019-2022 Fankes Studio([email protected])