【发布时间】:2016-12-02 11:21:02
【问题描述】:
我发现了关于 android 通知上的小图标的类似问题,但 Google 不会就以下问题给我任何提示:
简而言之,当应用未打开时,我的通知不会显示颜色和图标,但当应用在屏幕上可见时它会完美运行。
出现通知时应用正在后台运行:
当通知出现时,应用程序在屏幕上可见:
对我来说,该服务似乎无法使用其当前上下文加载某些资源。目前我正在使用我自己的 python 服务器调用 firebase REST Api 来发送通知。
虽然标题和文本正文是通过通知自己的负载直接发送的,但图标和颜色由应用选择。
这就是在服务中构建通知的方式。
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);
这是最终显示通知的 sn-p:
final NotificationManagerCompat mNotificationManager = NotificationManagerCompat.from(context);
final boolean notificationsEnabled = mNotificationManager.areNotificationsEnabled();
if (notificationsEnabled) {
mNotificationManager.notify(notifyID, mBuilder.build());
}
感谢您的帮助!
【问题讨论】:
-
如果您使用 firebase 推送通知工具测试推送,则推送无法正常工作,因为如果您的应用在后台模式下收到通知,那么此通知将由系统管理,系统会显示您的应用图标,这就是为什么您应用没有显示正确的通知
-
@Manza 我已经尝试将它添加到清单中,但它仍然无法正常工作。因为我还想决定动态使用哪个图标,所以它可能是另一个用例。我确实经常读到它必须是透明的白色图标,我也可以为我目前使用的材料图标验证这一点。
-
@TheWhiteLlama 我链接的解决方案适用于 firebase 版本 9.8.0。或者在下面查看我的答案
-
@TheWhiteLlama 我已经更新了答案
标签: android firebase android-notifications firebase-cloud-messaging firebase-notifications