Flutter Local Notification应用图标在Pixel 6手机不显示,其他设备正常
解决Flutter Local Notification在Pixel 6上图标不显示的问题
问题根源
Pixel 6搭载Android 12+系统,该版本对通知图标有严格规范:必须使用单色、透明背景的图标,普通带背景的应用启动图标(比如你代码里的@mipmap/ic_launcher)会被系统过滤,导致图标不显示或被替换为默认占位符,而旧版本Android对这一限制要求宽松,所以其他设备能正常显示。
具体修复步骤
准备合规的通知图标
制作单色(推荐白色)、无背景的PNG图标,放到Android项目的res/drawable-xxxhdpi、res/drawable-xxhdpi等对应dpi的目录下,命名为ic_notification(或自定义名称)。修改初始化代码
- 更新初始化设置,替换为新的通知图标:
var initializationSettingsAndroid = const AndroidInitializationSettings('@drawable/ic_notification'); - 创建通知渠道时,明确指定渠道图标(Android 12+强制要求):
const AndroidNotificationChannel channel = AndroidNotificationChannel( 'channel ID', 'channel name', playSound: true, importance: Importance.max, icon: '@drawable/ic_notification', // 新增渠道图标配置 );
- 更新初始化设置,替换为新的通知图标:
清理缓存并重建项目
执行以下命令清理旧资源缓存,避免缓存导致配置不生效:flutter clean flutter run验证通知权限(Android 13+)
如果是Android 13及以上版本,确保已申请并授予POST_NOTIFICATIONS权限,虽然这不会直接导致图标不显示,但权限缺失会让通知无法正常触发。
内容的提问来源于stack exchange,提问作者Akram
相关产品推荐
相关产品推荐

