Firebase云消息传递通知仅在我打开“通知选项卡”时显示

问题描述 投票:0回答:1

因此,我获得了使用Google Firebase云消息传递的推送通知。现在唯一的问题是通知没有显示任何警报,只有当我拉下我看到它的通知抽屉时。

我有这部分代码,我认为添加了“弹出”功能

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());
        }

    }

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

java android push-notification notifications
1个回答
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

AutoCancel

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

.setAutoCancel(true)

额外的说明

对于像Xiaomi和Redmi这样的设备,您需要转到“设置”以启用浮动通知

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.