簡體   English   中英

Java Android - Redmi 3(MIUI) - 通知圖標無法更改?

[英]Java Android - Redmi 3 (MIUI) - Notification icons cannot be changed?

我正在嘗試更改通知圖標,在模擬器中可以:

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

在此輸入圖像描述

這就是我想要的(在模擬器API級別22(安卓5.1.1)上測試)但是,當我在我的真實手機中運行這個APP時(小米Redmi 3 prime與MIUI 8.0.1)也是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關閉所有通知圖標並將其設置為默認的應用程序啟動圖標?

謝謝!

編輯:我的手機通知看起來像這樣......

在此輸入圖像描述 在此輸入圖像描述

我有同樣的問題,但Juan Pablo(評論Java Android - Redmi 3(MIUI) - 通知圖標無法更改? )給了我一個線索,現在我有一個解決方案:

//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) {

    }

現在它按預期工作。

這是MIUI系統的行為。 您無法在通知中顯示不同的圖標,默認情況下,它會將應用程序圖標作為通知圖標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM