我使用前台服务设置了持续通知。这是代码。
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(图标位于最左侧角落):
编辑:我也试了一个白色图标。但仍然会显示默认的应用图标。图标有任何尺寸限制吗?但是xml图标可以正确扩展。
答案 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。