我試圖將Firebase雲消息傳遞集成到我的Android應用程序中。但是,當應用程序處於後臺或關閉狀態時,Firebase通知將顯示爲灰色方形圖標,而不是我應用程序的啓動器圖標。使用Firebase通知的灰色方塊作爲通知圖標
如何在不實施Firebase服務器API併發送數據消息的情況下將通知圖標設爲我的應用徽標?
我試圖將Firebase雲消息傳遞集成到我的Android應用程序中。但是,當應用程序處於後臺或關閉狀態時,Firebase通知將顯示爲灰色方形圖標,而不是我應用程序的啓動器圖標。使用Firebase通知的灰色方塊作爲通知圖標
如何在不實施Firebase服務器API併發送數據消息的情況下將通知圖標設爲我的應用徽標?
從火力地堡9.8.0有可能改變該圖標,在清單中加入這個信息:
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_ic_notification" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorAccent" />
例子中,你會發現,這裏:
它是一個在firebase中的錯誤。如果您的應用處於前臺並且通知是從Firebase控制檯發送的,則會顯示灰色圖標。
解決方法是:通過API發送通知,而不是通過控制檯發送通知。
正確。奇蹟般有效! (Moto G4 +牛軋糖操作系統) 應用程序死亡/不在前面 –
事不關到Firebase。從Android 3.0狀態圖標開始進行修改,「在透明背景上僅由白色像素組成,在適當的位置使用用於平滑邊緣和內部紋理的Alpha混合」https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar.html。從我看到的情況來看,從Android 5.0開始,你不得不提供這些全部白色的小型狀態圖標,否則會出現灰色方形圖標。
這個問題Icon not displaying in notification: white square shown instead有答案解釋進一步,也顯示如何強制您的應用程序使用原始ic_launcher圖標,雖然這似乎不是一個好主意,因爲你迫使它的目標是一個較老的SDK,也不遵循材料設計指南。
你真的應該做的是提供白色的小圖標,它可以產生在這裏http://romannurik.github.io/AndroidAssetStudio/icons-notification.html將它們添加到您的項目,然後配置FCM使用它們作爲公認的答案
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_ic_notification" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorAccent" />
解釋創建基本形狀在透明背景上的25x25像素圖像內。注意安全框架,並保持上部和下部2像素空閒。將圖標以25x25導出爲啓用透明度的PNG文件。
通知圖標源自您的啓動器圖標。請參閱http://stackoverflow.com/questions/37325051/notification-icon-with-the-new-firebase-cloud-messaging-system –