如何实现类似WhatsApp的Android带用户图标推送通知
无法实现类似WhatsApp/Telegram的带用户图标推送通知

我无法实现像WhatsApp和Telegram那样显示带用户图标的推送通知……
我尝试使用
.setLargeIcon(myLargeIcon)
但得到的布局与预期不符。我也查阅了StackOverflow上的类似问题,但均未解决。
要实现这类对话式通知,你需要使用Android的MessagingStyle,而非单纯设置LargeIcon,具体步骤如下:
- 创建用户信息对象:定义发送消息的用户头像与名称
NotificationCompat.MessagingStyle.User user = new NotificationCompat.MessagingStyle.User( Uri.parse("android.resource://你的包名/drawable/用户头像资源"), "用户名" );
- 构建对话式通知样式:
NotificationCompat.MessagingStyle messagingStyle = new NotificationCompat.MessagingStyle(user) .addMessage("第一条消息内容", System.currentTimeMillis(), user) .addMessage("第二条消息内容", System.currentTimeMillis(), user); // 支持添加多条历史消息
- 配置通知渠道(Android 8.0及以上必填):
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { NotificationChannel channel = new NotificationChannel( "chat_notify_channel", "对话通知", NotificationManager.IMPORTANCE_HIGH ); NotificationManager notificationManager = getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(channel); }
- 组装并发送通知:
Notification notification = new NotificationCompat.Builder(this, "chat_notify_channel") .setStyle(messagingStyle) .setSmallIcon(R.drawable.ic_notify_small) .setPriority(NotificationCompat.PRIORITY_HIGH) .build(); NotificationManagerCompat.from(this).notify(1, notification);
这种方式会自动将用户头像以圆形小图标形式展示在通知左侧,和WhatsApp/Telegram的布局逻辑一致。单纯使用setLargeIcon只会显示大尺寸图标,不符合对话类通知的样式规范。
内容的提问来源于stack exchange,提问作者pw2
相关产品推荐
相关产品推荐

