如何在#flutter 中更改推送通知的 Android 通知图标/状态栏图标?

Aja*_*mar 14 push-notification flutter

我想用我自己的推送通知图标替换默认图标。

现在应用程序将图标显示为白框。

Aja*_*mar 24

只需在清单文件中的标签内添加元数据即可。

参考

<!-- Set custom default icon. This is used when no icon is set for incoming notification messages. -->


<application
    android:name="io.flutter.app.FlutterApplication"
    android:label="When Coin"
    android:icon="@mipmap/ic_launcher">
<meta-data
   android:name="com.google.firebase.messaging.default_notification_icon"
   android:resource="@mipmap/ic_stat_ic_notification" />
Run Code Online (Sandbox Code Playgroud)

  • 您还需要生成该文件,以防有人想知道这是否是某种特殊的 Android 设置。 (2认同)

J. *_*Saw 18

Ajay 的回答是正确的,但要稍微扩展一下:

  1. 创建您的 mipmap 通知图标。您可以使用Roman 的通知图标生成器轻松完成此操作- 单击“通知图标生成器”

  2. 在左侧面板上,单击“图像”上传您自己的图像或使用提供的剪贴画或文本。

  3. 完成后,单击右上角的下载按钮以下载 zip 文件。

  4. 在 zip 文件中,您的图标文件将位于与项目目录中的 mipmap 目录同名的各个目录中(例如,“mipmap-hdpi”、“mipmap-mdpi”等)。将图标文件移动到项目中各自的文件夹中。

  5. 在您的 AndroidManifest.xml 文件(位于android/app/src/main/AndroidManifest.xml)中,在“应用程序”标签中添加元数据:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.your.package">

    <application
        android:name="com.your.package.Application"
        android:label="YourAppName"
        android:icon="@mipmap/launcher_icon">

        <meta-data
          android:name="com.google.firebase.messaging.default_notification_icon"
          android:resource="@mipmap/your_icon_file_name" />
Run Code Online (Sandbox Code Playgroud)
  1. 保存您的文件。您可能需要停止并重新启动或卸载并重新安装您的应用程序才能开始显示通知图标。

  2. 您的图标可能是白色的,因此如果您想更改颜色,您可以在刚刚添加的图标元数据标签下方添加以下元数据标签:

        <meta-data
          android:name="com.google.firebase.messaging.default_notification_color"
          android:resource="@android:color/black" />

Run Code Online (Sandbox Code Playgroud)

这会将图标更改为黑色,但您可以res/values按照此处的说明设置自己的颜色:Android System Color Constants

关于元数据标签的信息在这里:https : //firebase.google.com/docs/cloud-messaging/android/receive

  • 这里应该是非常明显的,但是一旦犯了并修复了错误,重要的是把 &lt;meta-data ... 放在 android:icon 下面... 即:不在 &lt;activity 中 (2认同)