因此我得到了与Google的Firebase Cloud Messaging一起使用的推送通知。现在唯一的问题是,只有当我拉下看到它的通知抽屉时,通知才会显示任何警报。
我已经在代码的这一部分中添加了“弹出”功能
public void displayNotification(String title, String body){
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext, Constants.CHANNEL_ID)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(body);
Intent intent = new Intent(mContext, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(mContext,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingIntent);
NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
if(mNotificationManager != null) {
mNotificationManager.notify(1, mBuilder.build());
}
}
我遇到的另一个问题是,当我单击通知时,它会打开活动,但不会删除通知。
答案 0 :(得分:2)
前景弹出窗口
在构建器下,您需要设置高优先级或最大优先级以及默认的通知振动/声音,以便可以看到“弹出”窗口
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setDefaults(NotificationCompat.DEFAULT_ALL);
背景弹出窗口
要实现后台弹出,您需要微调FCM有效负载。如果您的有效负载中同时包含data
和notification
,则displayNotification
方法无法处理弹出窗口。您将只需要data
负载。
Google已将此行为放在文档中。 参考-FCM for android: popup system notification when app is in background
自动取消
对于第二个问题,在构建器中添加setAutoCancel
.setAutoCancel(true)
额外注释
对于某些设备(例如小米和Redmi),您需要转到“设置”以启用浮动通知