int mNotificationId = 001;
Bitmap b = BitmapFactory.decodeResource(getResources(),R.drawable.net);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(MainActivity.this)
.setSmallIcon(R.drawable.net)
.setLargeIcon(b)
.setContentTitle("My notification")
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setContentText("Hello World! ");
NotificationManager mNotifyMgr =
(NotificationManager) getSystemService(NOTIFICATION_SERVICE);
mNotifyMgr.notify(mNotificationId, mBuilder.build());
我在按钮点击上使用上面的代码在Android上生成推送通知,因为我正在设置优先级 - MAX,它会在应用程序屏幕上弹出,然后我将其滑出屏幕,然后在通知抽屉中显示。
我在onReceive上为我的FCM服务编写了相同的代码。但是,当我从FCM发出通知并且如果应用程序在后台时没有弹出,并且通知在通知栏中直接显示为图标。 而且,甚至没有显示指定的图标。 (R.drawable.net)
我需要将通知作为弹出窗口,并且还想知道如何将drawable设置为通知图标。
答案 0 :(得分:0)
FCM中有两种类型的通知。
1. 通知消息 - 当应用处于后台时,FCM SDK会自动处理这些消息,并在应用处于前台时传递给您的接收方。
2. 数据消息 - 由客户端应用处理。这些仅由您的接收器处理。
根据您的问题,我认为您正在使用**。通知消息**是高优先级消息。通知消息应格式化为: -
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
您可以从服务器传递一些自定义参数来构建通知。 要在下面添加应用程序图标,就是清单条目。
<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/notification_icon" />
<meta-data android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/color_blue" />
使用this article on split testing发送消息。阅读Notification composer和About FCM Messages。
请注意,在使用通知消息时,当您的应用处于后台时,系统不会调用onReceive()
。