gpt4 book ai didi

Java Android - Redmi 3 (MIUI) - 无法更改通知图标?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:22 29 4
gpt4 key购买 nike

我正在尝试更改通知图标,并且在模拟器中没问题:

enter image description here

enter image description here

enter image description here

enter image description here

这就是我想要的(在模拟器 API 级别 22(android 5.1.1)上测试)但是,当我在我的真实手机(带有 MIUI 8.0.1 的小米 Redmi 3 prime)以及 android 5.1 中运行此应用程序时。 1 - 通知看起来非常非常不同。此通知图标不显示(只是默认应用程序图标)。

但是……为什么?我现在可以做什么?

这是我的代码:

NotificationCompat.Builder b = new NotificationCompat.Builder(compat);
b.setSmallIcon((state == STATE_STOPPED) ? R.drawable.ic_stat_remove : R.drawable.check);
b.setContentText(content);
b.setContentTitle(BASE_NOTIFICATION_TITLE);
b.setOngoing(true);
b.setAutoCancel(true);
b.setColor((state == STATE_STOPPED) ? Color.RED : Color.rgb(22, 219, 28));

NotificationManager m = (NotificationManager) compat.getSystemService(NOTIFICATION_SERVICE);
m.notify(0, b.build());

只是一个非常简单的通知...有人可以告诉我,出了什么问题吗?或者只是 MIUI 关闭所有通知图标并将其设置为默认应用程序启动图标?

谢谢!

编辑:我手机中的通知看起来像这样......

enter image description here enter image description here

最佳答案

我遇到了同样的问题,但 Juan Pablo(在评论 Java Android - Redmi 3 (MIUI) - Notification icons cannot be changed? 中)给了我一个线索,现在我有了一个解决方案:

//notification is an object of class android.app.Notification
try {
Class miuiNotificationClass = Class.forName("android.app.MiuiNotification");
Object miuiNotification = miuiNotificationClass.newInstance();
Field field = miuiNotification.getClass().getDeclaredField("customizedIcon");
field.setAccessible(true);

field.set(miuiNotification, true);
field = notification.getClass().getField("extraNotification");
field.setAccessible(true);

field.set(notification, miuiNotification);
} catch (Exception e) {

}

现在它按预期工作了。

关于Java Android - Redmi 3 (MIUI) - 无法更改通知图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40146059/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com