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

Flutter集成Firebase:如何为Android推送通知设置自定义图标?

Flutter Android端FCM推送自定义图标设置方法

一、先准备合规的图标资源

  • 通知图标得是透明背景的单色(白色)PNG,Android系统限制通知图标不能有彩色,不然会被系统自动转成白/灰色
  • 要做不同分辨率的版本适配不同设备:
    • mdpi: 24×24
    • hdpi: 36×36
    • xhdpi: 48×48
    • xxhdpi: 72×72
    • xxxhdpi: 96×96
  • 把对应分辨率的图标放到Android项目的android/app/src/main/res/drawable-[dpi]/目录下,比如统一命名成ic_notification.png

二、配置AndroidManifest.xml设置默认图标

  • 打开android/app/src/main/AndroidManifest.xml,在<application>标签里加一段meta-data,指定默认的通知图标:
<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_notification" />
  • (可选)要是想给通知图标加个强调色,比如图标背景色,可以再加个meta-data:
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/notification_color" />

记得在res/values/colors.xml里先定义好notification_color,比如<color name="notification_color">#FF0000</color>

三、针对单条消息指定自定义图标(可选)

  • 如果某条推送想用不一样的图标,在发送FCM的Payload里,Android专属的notification字段里加icon参数,值是图标名称(不用加扩展名):
{
  "notification": {
    "title": "自定义标题",
    "body": "自定义内容",
    "icon": "ic_notification_custom"
  },
  "to": "目标设备的令牌"
}
  • 注意:这个图标必须已经放到Android项目的drawable目录里,不然会自动用默认图标兜底

四、前台接收消息时的图标设置

  • 要是Flutter应用在前台时需要自己弹通知,用flutter_local_notifications插件的话,创建NotificationDetails的时候得指定图标:
const AndroidNotificationDetails androidDetails = AndroidNotificationDetails(
  'your_channel_id',
  'your_channel_name',
  icon: 'ic_notification', // 这里填图标名称
);
const NotificationDetails notificationDetails = NotificationDetails(android: androidDetails);
await flutterLocalNotificationsPlugin.show(
  0,
  '消息标题',
  '消息内容',
  notificationDetails,
);

内容的提问来源于stack exchange,提问作者mathems32

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:22:46