我使用下面的代码在我的Android应用中显示通知。我可以显示它但是" small-Icon "和" 大图标"是不正确的。他们甚至不是发射器图标。!我不知道他们从哪里获得!!!!
我在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 :(得分:0)
首先,大图标和小图标可以不同。
setSmallIcon()
:设置一个图标,当收到通知时,该图标应显示在状态栏中。如果未在构建器中调用setLargeIcon()
,则大图标将使用小图标drawable。图标的大小应为24dp。
setLargeIcon()
:设置一个应在通知列表中显示的图标,用户可以通过垂直拖动状态栏来打开该图标。
!!!从API 21开始,Android要求您只使用带有透明度的单色图标来显示小图标(例如,只有白色和透明背景的Android填充轮廓)。
作为一个大图标,您可以使用任何颜色的图标,没有任何限制。