.NET Maui Android:无法将应用图标设为推送通知小图标求助
.NET Maui Firebase通知小图标不识别的解决方案
严格遵循Android通知图标规范
.NET Maui的Android资源处理逻辑和Xamarin.Forms有细微差异,通知图标必须满足:- 文件名统一为
ic_notification(可带分辨率后缀,如ic_notification_hdpi.png),不能用自定义名称 - 图标必须是透明背景的白色单色图,Android系统会自动适配通知栏的主题色
- 放置路径:将对应分辨率的图标放入
Platforms/Android/Resources/drawable-mdpi、drawable-hdpi等文件夹,通用版本放入drawable文件夹
- 文件名统一为
配置AndroidManifest.xml默认图标
在Platforms/Android/AndroidManifest.xml的<application>节点内添加以下配置,覆盖Firebase的默认图标:<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_notification" /> <!-- 可选:设置通知图标显示的颜色 --> <meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/your_notification_color" />注意
@drawable/ic_notification要和你的图标文件名完全一致,无需加.png后缀。清理项目缓存并重建
.NET Maui的资源缓存可能导致资源未更新,执行以下步骤:- 右键项目选择「清理」
- 删除项目根目录下的
bin和obj文件夹 - 重新编译并部署项目
检查推送Payload的图标字段
如果通过Firebase API或控制台发送推送,确保payload中的icon字段值为你的图标资源名,示例:{ "notification": { "title": "测试通知", "body": "通知内容", "icon": "ic_notification" } }不要包含路径、后缀或其他多余字符。
验证资源打包情况
可以用压缩工具打开生成的APK包,检查res/drawable-*dpi目录下是否存在你的通知图标,确认文件名和路径无误。
内容的提问来源于stack exchange,提问作者Prateek Panjigar
相关产品推荐
相关产品推荐

