为什么Notification不显示正确的smallIcon?

问题描述:

我使用下面的代码在我的Android应用中显示通知。我可以显示它,但“小图标”和“大图标”都不正确,它们甚至没有启动器图标。我不知道Android从哪里获得! Notification为什么Notification不显示正确的smallIcon?

  • 我的设备是小蜜,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()); 
    
+0

您的'setSmallIcon()'构建器正在为您的'setLargeIcon()'绘制不同的drawable。确保两者相同。 – codeFreak

+0

它不起作用。 – saeid

+0

您确定已经放置了所有版本(mdpi,hdpi,xhdpi,xxhdpi和xxxhdpi)吗?在一般的可绘制文件夹中也放置一个图标副本。 –

首先进行测试的通知,大图标和小图标可以是不同的。

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

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

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

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

+0

正如我所说的,我在仿真器中收到正确的通知。但是我自己的移动ha问题。尽管我可以在过去显示正确的通知。 ! – saeid

+0

我有一个小米红米Note 2的问题,它与闹钟管理器有关(设备无法在这样的通话后唤醒,尽管纯Android设备可以做到这一点)。现在我在小米设备上有很多通知和定制意图的问题,也许这与MIUI上的小米有关? 在其他设备上测试。也许这可能有助于知道。 –

+0

嗨,我过去创建了一些应用程序,他们在我的xiaomi设备中正确显示通知!我找不到为什么我的新应用程序无法正常工作!我改变了** compileSdkVersion **,** buildToolsVersion **甚至Android Studio版本,但它没有任何改变。 – saeid