2016-08-26 102 views
8

我試圖將Firebase雲消息傳遞集成到我的Android應用程序中。但是,當應用程序處於後臺或關閉狀態時,Firebase通知將顯示爲灰色方形圖標,而不是我應用程序的啓動器圖標。使用Firebase通知的灰色方塊作爲通知圖標

如何在不實施Firebase服務器API併發送數據消息的情況下將通知圖標設爲我的應用徽標?

+0

通知圖標源自您的啓動器圖標。請參閱http://stackoverflow.com/questions/37325051/notification-icon-with-the-new-firebase-cloud-messaging-system –

回答

13

從火力地堡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" /> 

例子中,你會發現,這裏:

https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/AndroidManifest.xml

+1

嘗試過,但仍然不起作用。做得好。 –

+0

作品。 – superbre

+1

確實....我沒有瞄準Firebase 9.8.0。將庫版本更新至9.8.0並使用元數據字段可以解決此問題。 – dell116

4

它是一個在firebase中的錯誤。如果您的應用處於前臺並且通知是從Firebase控制檯發送的,則會顯示灰色圖標。

解決方法是:通過API發送通知,而不是通過控制檯發送通知。

+0

正確。奇蹟般有效! (Moto G4 +牛軋糖操作系統) 應用程序死亡/不在前面 –

2

事不關到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" /> 
1

解釋創建基本形狀在透明背景上的25x25像素圖像內。注意安全框架,並保持上部和下部2像素空閒。將圖標以25x25導出爲啓用透明度的PNG文件。