receive - push notifications android
Notificación de inserción de FCM que muestra el ícono cuadrado blanco en lugar del ícono de la aplicación cuando la aplicación está en segundo plano (2)
Estoy usando FCM en mi aplicación de Android para administrar la notificación de inserción. Funciona completamente bien cuando la aplicación está en primer plano y el icono de la aplicación también es visible (correctamente). Pero cuando la aplicación se ejecuta en segundo plano, no recibo la notificación correctamente. En lugar del icono transparente, muestra el ícono cuadrado blanco como icono de notificación. Sé que, FCM manejará automáticamente la operación en segundo plano. Pero necesito mostrar el icono de mi aplicación en lugar de ese icono blanco. Nota: solo estoy usando el ícono transparente. También probé la siguiente codificación
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/rt_transparent_icon" />
<meta-data android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@android:color/holo_blue_bright" />
Pero ninguna de las soluciones realmente funcionó para mí. ¿Puede alguien decirme qué hacer?
Me enfrenté a este problema antes y lo resolvió así:
private int getNotificationIcon() {
boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.LOLLIPOP);
// LOLLIPOP or Marshmellew>>>>>>>>>>>>>>>>>>>>> KitKat or Less
return useWhiteIcon ? R.drawable.logo_new : R.drawable.logo;
}
y simplemente llame a esta función en setSmallIcon()
nbuilder.setSmallIcon(getNotificationIcon());
{
"to" : "token",
"notification": {"body": "Body",
"title": "Title",
"click_action": "com.sample.test.OPEN_ACTIVITY",
"icon" : "ic_launcher"
},
"data": {
"image": "https://ibin.co/2t1lLdpfS06F.png",
"message": "Firebase Push Message Using API"
}
}
Por lo tanto, si el nombre del "icono" es el mismo que el nombre del archivo en la aplicación dibujable, FCM se ocupa del resultado, si su aplicación está en segundo plano. En primer plano es su propia implementación personalizada de notificación, que funcionará. Sólo séme si, eso resolvió el problema.