状态栏通知图标未更改 - API 23

时间:2018-05-30 11:42:07

标签: android notifications drawable

我使用前台服务设置了持续通知。这是代码。

NotificationCompat.Builder notificationBuilder= new NotificationCompat.Builder(this,"unique")
            .setSmallIcon(R.drawable.ic_mms_black_24dp)
            .setContentTitle("My notification")
            .setContentText("Hello World!")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);

    Notification notification= notificationBuilder.build();
    startForeground(MY_ID,notification);

但是我在setSmallIcon()设置的图标没有效果,而是显示在Android 6上运行的状态栏和通知面板上的默认应用图标。但之后我在Android 5.1上运行了上述代码.1(API等级22),它显示正确的图标。我尝试了不同类型的图标(png,xml),一切运作良好。但在我的Marshmallow上它只显示默认的应用程序图标。

我如何找出原因?

来自Android 6(图标位于最左侧角落):

From Android 6(Icon is at the left most corner

来自Android 5(图标位于最左侧角落): From Adroid 5

编辑:我也试了一个白色图标。但仍然会显示默认的应用图标。图标有任何尺寸限制吗?但是xml图标可以正确扩展。

2 个答案:

答案 0 :(得分:1)

很可能是因为你的图标是黑色的。

对于最新的Android版本,您需要通知图标为白色。

  

状态栏图标仅由透明的白色像素组成   背景

你可以在这里查看指南 - https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar

同时确保您拥有不同屏幕密度所需的所有正确尺寸。

答案 1 :(得分:0)

似乎问题来自OS的制造。 EMUI 4.0+中存在一个无法显示自定义通知图标的问题。它仅在状态栏中显示应用程序默认图标。如果你的模型有EMUI这就是问题所在。本指南可能有助于解决问题 - How to enable ui tuner EMUI 4