我有一个奇怪的问题。我有两种方式在我的Android应用程序中发送通知;一种来自Android服务,另一种通过FCM。
场景如下:
我在FCMService中的代码:
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.notification_icon)
.setContentTitle("Android App")
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
这是github fcm页面中详细介绍的FMC错误。
https://github.com/firebase/quickstart-android/issues/4
您的问题很可能是通知消息
和数据消息
之间的区别。
请阅读:https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages
当您希望FCM代表您的客户端应用程序处理显示通知时,请使用通知消息。当您想在客户端应用程序上处理消息时,请使用数据消息。
目前,FCM Web控制台仅发送通知消息
因此,通过Web控制台(或通过带有通知有效负载的API)发送的所有消息将以这种方式:
onMessageReception()
.
如果您想要的行为是始终调用onMessageReceived()
:
那么您需要使用仅数据(无通知)消息
由于通知图标没有一个单独的图像,我有点不知道如何做到这一点。 谢谢
根据android iconography文档,状态栏中的图标应该是完全白色的,背景是透明的。然而,即使是内置的图标似乎也不都遵循这种模式。信号质量(适用于wifi和电池)、电池指示器和其他一些新设备上的图标上有全息蓝色背景。这个颜色是不是内置在图标本身?我正在寻找实现一个状态栏图标与我的应用程序,将表明一个连接到外部(蓝牙)设备的状态。我计划做我的公司徽标(它是一个相当简单的,大部分是圆形的形状
我今天的通知图标有一个奇怪的问题。 我做了什么坏事吗? 这是我的图标图片(刚从这里下载https://material.io/icons/#ic_photo) : http://image.noelshack.com/fichiers/2016/44/1478185219-icon-notification.png 我错过什么了吗? 作为记录,我使用的是SDK 24,目前只创建了hdpi资源文件夹
当对推送通知使用解析时,我们的应用程序总是显示应用程序的启动器图标。在最新的Android5.1版本中,图标看起来是空白的(一个白色的正方形)。
我想用我自己的推送通知图标替换默认图标。 现在,应用程序将图标显示为白色框。
如何隐藏或完全删除SmallIcon?我尝试不使用nBuilder.setSmallIcon,但结果是通知根本不显示!