如何解决Android、Java - setSmallIcon() 隐藏在新通知中但是通知仍然在通知抽屉里
我真的迷路了。是否有隐藏状态栏中通知图标但抽屉中仍然存在通知的情况?在回复现有通知后将传入消息附加到通知时会发生这种情况。
我使用:
NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification();
一切正常,但通知图标隐藏起来。我也用
notificationmanager.IMPORTANCE_HIGH
NotificationCompat.MessagingStyle activeNotification = NotificationCompat.MessagingStyle.extractMessagingStyleFromNotification();
return new NotificationCompat.Builder(getApplicationContext(),ID)
.setContentIntent(pIntent)
.addAction(action)
.setSmallIcon( R.drawable.icon)
.setAutoCancel(true)
.setSound(uri)
.setStyle(activeNotification
.addMessage(body,SystemClock.currentThreadTimeMillis(),person)
)
;
提前致谢。
解决方法
您可以关注下面的通知生成器。我正在设置这样的小图标:
val notificationBuilder: NotificationCompat.Builder =
NotificationCompat.Builder(context,channelId)
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher_round)
更新:
我正在发布用于显示通知的完整代码。
val pendingIntent =
PendingIntent.getActivity(context,intent,PendingIntent.FLAG_UPDATE_CURRENT)
val notificationBuilder: NotificationCompat.Builder =
NotificationCompat.Builder(context,channelId)
notificationBuilder.setSmallIcon(R.mipmap.ic_launcher_round)
notificationBuilder.color = 0x474E54
notificationBuilder.setContentTitle(title)
.setContentText(message)
.setAutoCancel(false)
.setStyle(NotificationCompat.BigTextStyle())
.setSound(Settings.System.DEFAULT_NOTIFICATION_URI)
.setContentIntent(pendingIntent)
.setDefaults(Notification.DEFAULT_ALL)
.setAutoCancel(true)
.setCategory(NotificationCompat.CATEGORY_SOCIAL)
val notificationManager: NotificationManager =
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val importance = NotificationManager.IMPORTANCE_HIGH
val notificationChannel = NotificationChannel(
channelId,channelId,importance
)
notificationChannel.enableLights(true)
notificationChannel.lightColor = Color.RED
notificationChannel.enableVibration(true)
notificationChannel.vibrationPattern = longArrayOf(0,1000,500,1000)
notificationBuilder.setChannelId(channelId)
notificationManager.createNotificationChannel(notificationChannel)
} else {
notificationBuilder.priority = NotificationCompat.PRIORITY_HIGH
notificationBuilder.setVibrate(longArrayOf(0,1000))
}
notificationManager.notify(notificationId,notificationBuilder.build())
您可以根据需要更改它。希望这会有所帮助。 :)
,当您将与上次附加的标题不同的标题传递到下一次附加通知时,问题似乎就出现了。这以某种方式删除了 smallIcon。所以我只是提供了 null 作为要追加的新回复的标题,它工作正常。我仍然需要深入挖掘以重新编写代码以使其适合。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。