我发现有关Android通知上的小图标的类似问题,但Google未能给出任何关于以下问题的提示:
简单地说,我的通知在应用程序未打开时不会显示颜色和图标,但是当应用程序在屏幕上可见时,它会完美地运行。
当通知出现时,应用程序在后台运行:
当出现通知时,屏幕上会显示应用程序:
对我而言,服务似乎无法使用当前上下文加载某些资源。目前我正在使用我自己的python服务器调用firebase REST Api来发送通知。
虽然Title和Text-Body是通过通知自己的有效负载直接发送的,但应用程序会选择图标和颜色。
这是在服务中构建通知的方式。
final Context context = this.getApplicationContext();
final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setDefaults(Notification.DEFAULT_SOUND)
.setContentTitle(notification.getTitle())
.setContentText(notification.getBody())
.setColor(ContextCompat.getColor(context, R.color.notification))
.setSmallIcon(R.drawable.ic_local_shipping_white_24dp);
这是最终显示通知的片段:
final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
final boolean notificationsEnabled = mNotificationManager.areNotificationsEnabled();
if (notificationsEnabled) {
mNotificationManager.notify(notifyID, mBuilder.build());
}
感谢您的帮助!
答案 0 :(得分:2)
您可以尝试:
1。更新至9.8.0版并检查THIS解决方案
<强> 2 强> 发送推送通知时设置图标和颜色。
示例JSON:
{
"notification" : {
"body" : "My amazing body!",
"title" : "My amazing title",
"icon" : "ic_logo",
"sound" : "default",
"color" : "#D63A49"
},
"registration_ids": ["XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
}
ic_logo 是资源名称
3. 发送data
通知。这样,即使应用程序位于backgrdound
onMessageReceived(RemoteMessage message)
方法
示例JSON:
{
"data": {
"my_custom_key" : "my_custom_value",
"whatever" : "YES",
"other_key" : true
},
"to": "XXXXXXX"
}