为什么通知没有显示正确的smallIcon?

时间:2017-10-18 10:46:43

标签: android push-notification

我使用下面的代码在我的Android应用中显示通知。我可以显示它但是" small-Icon "和" 大图标"是不正确的。他们甚至不是发射器图标。!我不知道他们从哪里获得!!!! Notification

  • 我的设备是xiaomi-mi5s,它与我的设备有关吗?虽然Gmail等其他应用会显示正确的通知。
  • 我在API 15,17,26模拟器和所有内容中测试了通知

        NotificationCompat.Builder builder = new android.support.v4.app.NotificationCompat.Builder(context, PRIMARY_CHANNEL)
            .setSmallIcon(R.drawable.ic_stat_name)
            .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher))
            .setContentIntent(getPendingIntent(context))
            .setContentTitle("This is dummy title")
            .setContentText("This is dummy body text")
            .setSound(getDefaultSoundUri())
            .setCategory("My_Category")
            .setDeleteIntent(getOnDismissedPendingIntent(context));
    
        NotificationManager manager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);
    
        if (Build.VERSION.SDK_INT >= 26) {
            NotificationChannel chan1 = new NotificationChannel(PRIMARY_CHANNEL,
                    PRIMARY_CHANNEL, NotificationManager.IMPORTANCE_DEFAULT);
            chan1.setLightColor(Color.BLUE);
            chan1.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
            manager.createNotificationChannel(chan1);
        }
    
        manager.notify(12121, builder.build());
    

1 个答案:

答案 0 :(得分:0)

首先,大图标和小图标可以不同。

setSmallIcon():设置一个图标,当收到通知时,该图标应显示在状态栏中。如果未在构建器中调用setLargeIcon(),则大图标将使用小图标drawable。图标的大小应为24dp。

setLargeIcon():设置一个应在通知列表中显示的图标,用户可以通过垂直拖动状态栏来打开该图标。

!!!从API 21开始,Android要求您只使用带有透明度的单色图标来显示小图标(例如,只有白色和透明背景的Android填充轮廓)。

作为一个大图标,您可以使用任何颜色的图标,没有任何限制。