Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Firebase Notification is grey flutter

I'm using Firebase Cloud Messaging to send notifications to my Flutter app. It works fine but my app icon notification is grey on the Google Pixel XL. I can see the outline, but for some reason, it's still grey. I've read in different articles that it has to do with the Android SDK level, but the minSdkVersion in Flutter is already 16 (less than 21) so I don't understand why the color won't show on.

So is it possible to show my app icon for notifications with the color?

--Thanks in advance

like image 832
Prince Hodonou Avatar asked Jan 05 '19 21:01

Prince Hodonou


1 Answers

Here you can read:

Customize default notification

Custom default icon

Setting a custom default icon allows you to specify what icon is used for notification messages if no icon is set in the notification payload. Also use the custom default icon to set the icon used by notification messages sent from the Firebase console. If no custom default icon is set and no icon is set in the notification payload, the application icon (rendered in white) is used.

Custom default Color

You can also define what color is used with your notification. Different android versions use this settings in different ways: Android < N use this as background color for the icon. Android >= N use this to color the icon and the app name.

Try putting that in your AndroidManifest.xml

<!-- Set custom default icon. This is used when no icon is set for incoming notification messages. -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"
    android:resource="@drawable/ic_stat_ic_notification" />
<!-- Set color used with incoming notification messages. This is used when no color is set for the incoming notification message.  -->
<meta-data
    android:name="com.google.firebase.messaging.default_notification_color"
    android:resource="@color/colorAccent" />

You can find more info here.

You also need to have your colorAccent define. You can create a colors.xml file in your res folder like that:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorAccent">#E91E63</color>
</resources>

In this folder: /android/app/src/main/res/values

Also the icon must be in the drawable folder.

But remember that this icon must be white with a transparent background.

For some type of icons to be colored you need on some device sets meta-tags you already added in yuor AndroidManifest.xml and your icon must follow some specifications (must be white in a transparent background). You can try to generate one here. Give it a try. Remember to put it on drawable folder and update the manifest meta-tag icon name.

Read also this SO question that stengthens up what I've said here.

I've tried on the Pixel 2 emulator running API level 27:

enter image description here

Hope it helps.

like image 98
shadowsheep Avatar answered Sep 24 '22 02:09

shadowsheep