You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 如何设置Firebase推送通知左侧显示大应用图标

Firebase推送通知左侧大图标布局问题解决方案

本方案针对Android端场景,iOS端通知默认已实现左侧展示应用大图标、右侧展示标题的布局,无需额外配置。


1. 准备符合规范的大图标资源

  • 按照Android官方要求准备对应分辨率的图标:mdpi 48x48px、hdpi 72x72px、xhdpi 96x96px、xxhdpi 144x144px、xxxhdpi 192x192px
  • 图标使用透明背景PNG格式,存放在项目res/drawable对应分辨率目录下,命名建议为ic_notification_large.png
  • 注意不要给图标添加多余的透明边距,否则实际显示会看起来尺寸偏小

2. 通知构建时显式指定大图标

如果是应用内触发的通知、或者Firebase消息服务onMessageReceived回调中构建的通知,需要给NotificationCompat.Builder显式设置大图标参数:

// 从本地资源解析大图标
val largeIcon = BitmapFactory.decodeResource(resources, R.drawable.ic_notification_large)
val notificationBuilder = NotificationCompat.Builder(this, CHANNEL_ID)
    .setSmallIcon(R.drawable.ic_notification_small) // 原有小图标,用于状态栏展示
    .setLargeIcon(largeIcon) // 核心配置:指定通知栏展示的大图标
    .setContentTitle("通知标题")
    .setContentText("通知内容")
    .setPriority(NotificationCompat.PRIORITY_DEFAULT)

如果是服务端下发的Firebase后台通知(由系统直接渲染),需要在通知payload中添加大图标配置:

{
  "notification": {
    "title": "通知标题",
    "body": "通知内容",
    "image": "ic_notification_large"
  }
}

注意:image参数值必须和本地大图标资源的文件名完全一致,不需要加文件后缀

3. 自定义布局适配(可选)

如果系统默认通知布局的图标位置、尺寸仍不符合需求,可以自行定义通知布局:

  1. 新建布局文件layout/custom_notification.xml,自行定义左侧大图标、右侧标题的位置和尺寸,建议固定图标尺寸为48dp适配不同设备
  2. 构建通知时绑定自定义布局:
val customView = RemoteViews(packageName, R.layout.custom_notification)
customView.setImageViewBitmap(R.id.iv_large_icon, largeIcon)
customView.setTextViewText(R.id.tv_title, "通知标题")
notificationBuilder.setCustomContentView(customView)

4. 异常情况排查

  • 确认已完成Android 8.0及以上版本的通知渠道适配,未创建通知渠道时通知样式会被系统强制重置
  • 部分国产ROM有独立的通知样式规则,需要在系统应用设置中打开对应应用的「通知显示大图标」权限
  • 测试时不要使用Android模拟器的低配系统镜像,部分镜像存在通知样式渲染异常的问题

内容的提问来源于stack exchange,提问作者Rashmi Ranjan Sahoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:54:00