gpt4 book ai didi

Android - 收到通知但没有弹出通知(前景)

转载 作者:行者123 更新时间:2023-11-29 14:43:03 28 4
gpt4 key购买 nike

我的应用程序可以正确接收通知,但无法显示包含收到的信息的弹出通知(如果应用程序已打开)。

注意:如果应用程序在后台,通知会毫无问题地显示。


我的代码:

我以这种方式收到通知:

@Override
public void onMessageReceived(RemoteMessage remoteMessage)
{
Log.d(TAG, "From: " + remoteMessage.getFrom());

if(remoteMessage!=null)
{
String id = null;
String title = null;
String body = null;
String launchPage = null;

if(remoteMessage.getNotification()!=null)
{
title = remoteMessage.getNotification().getTitle();
body = remoteMessage.getNotification().getBody();
}

if(remoteMessage.getMessageId()!=null)
{
id = remoteMessage.getMessageId();
}

Log.i(TAG, "id: " + id);
Log.i(TAG, "title: "+ title);
Log.i(TAG, "body: " + body);

int notif_id = 0;

sendNotification(notif_id, title, body, launchPage);
}
}

然后它调用这个(据我所知应该显示通知):

private void sendNotification(int id, String title, String messageBody, String launchPage)

Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(android.R.drawable.stat_sys_download)
.setContentTitle("OMR - "+title)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setColor(ContextCompat.getColor(this, R.color.colorPrimary))
.setChannelId(CHANNEL_ID);

NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
createChannel(notificationManager, CHANNEL_ID);
}

Toast.makeText(this, "Received a notif...", Toast.LENGTH_SHORT).show();

//this line is not showing a notification
notificationManager.notify(id, notificationBuilder.build());
}

Firebase 通知

{
"data": {
"message": "data payload only used to force using OnMessageReceived() if in BACKGROUND",
"notif_id": 1
},
"to" : "e04OAVaRw30:APA91bGyv5_tt4IWRkurjlqkqNlCxTBV8oRne18tQ5puniHPItOMgg11kdt56t5jfZnasb4Ms-tH9xUgWQhHy2eM487llRtlM9_V_PoWJI9KSr6XgCaysiDyS",
"notification": {
"title": "Notification",
"body": "This is Notification 2",
"sound":"default"
}


结果

  • 通知构建正确
  • 声音播放正确
  • 通知放入系统托盘
  • 但是没有出现通知弹出窗口(我必须显示一个为此自定义对话框)

我的问题在于这一行

notificationManager.notify(id, notificationBuilder.build());

无法显示通知

更新我在

中阅读了更多关于 Android 通知的信息

https://developer.android.com/guide/topics/ui/notifiers/notifications

并发现通知只显示在通知抽屉中而不会弹出(如 Heads-up notifications)。

根据这个 question ,如果我为它们添加了高优先级,我可以强制通知显示为单挑通知。不幸的是,这也不起作用。

最佳答案

如果您使用的是 FCM,这张图片可以解释一切。

关于Android - 收到通知但没有弹出通知(前景),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54787141/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com