Firebase Cloud Messaging Notification仅在我打开“通知选项卡”时显示

时间:2018-07-10 09:54:43

标签: java android push-notification notifications

因此我得到了与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());
        }

    }

我遇到的另一个问题是,当我单击通知时,它会打开活动,但不会删除通知。

1 个答案:

答案 0 :(得分:2)

前景弹出窗口

在构建器下,您需要设置高优先级或最大优先级以及默认的通知振动/声音,以便可以看到“弹出”窗口

.setPriority(NotificationCompat.PRIORITY_HIGH)
.setDefaults(NotificationCompat.DEFAULT_ALL);

背景弹出窗口

要实现后台弹出,您需要微调FCM有效负载。如果您的有效负载中同时包含datanotification,则displayNotification方法无法处理弹出窗口。您将只需要data负载。

Google已将此行为放在文档中。 enter image description here 参考-FCM for android: popup system notification when app is in background

自动取消

对于第二个问题,在构建器中添加setAutoCancel

.setAutoCancel(true)

额外注释

对于某些设备(例如小米和Redmi),您需要转到“设置”以启用浮动通知

enter image description here