通知未显示 - 已设置 chennel 以及小图标、标题和文本
Posted
技术标签:
【中文标题】通知未显示 - 已设置 chennel 以及小图标、标题和文本【英文标题】:Notification not showing - already set chennel as well as small icon, title and text 【发布时间】:2021-01-19 08:36:43 【问题描述】:我一直在我的其他应用程序上使用通知,它工作得很好。我也实现了channelId
,但是当我对新应用程序使用类似的代码时,通知只是没有出现。未报告任何错误。
以下是我正在使用的代码
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notIntent = new Intent(context, hk.class);
// notIntent.setAction(BuildConfig.APP_ID + ".inspire");
notIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendInt = PendingIntent.getActivity(context, ALARM_REQUEST_CODE,
notIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification.Builder mBuilder =
new Notification.Builder(context)
.setContentIntent(pendInt)
.setSmallIcon(R.drawable.spl)
// .setLargeIcon()
.setContentTitle(intent.getStringExtra("not_title"))
.setContentText(intent.getStringExtra("not_text"))
.setPriority(Notification.PRIORITY_HIGH)
.setDefaults(Notification.DEFAULT_VIBRATE)
.addAction(android.R.drawable.ic_menu_share, "Share", PendingIntent.getActivity(context, 0,
new Intent().setAction(Intent.ACTION_SEND).putExtra(Intent.EXTRA_TEXT,
"\n\n" + "-His Holiness Bhakti Rasamrita Swami\n\n").setType("text/plain"), 0))
.setWhen(System.currentTimeMillis())
.setStyle(new Notification.BigTextStyle().bigText(intent.getStringExtra("big_text")));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
mBuilder.setVisibility(Notification.VISIBILITY_PUBLIC);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
NotificationChannel channel = new NotificationChannel("daily", "Daily Nectar", NotificationManager.IMPORTANCE_HIGH);
channel.setDescription("Daily Nectar");
channel.enableLights(true);
mNotificationManager.createNotificationChannel(channel);
mBuilder.setChannelId("chId");
mNotificationManager.notify(ALARM_REQUEST_CODE, mBuilder.build());
Log.d("AlarmReceiver", "Notification Created"); //this log is printed in console
我已经使用Logs进行了测试,因此我可以确保这个函数被调用,所以报警没有问题。
奇怪的是,它也不会抛出任何错误,并且其他应用程序上非常相似的代码运行良好。所以,我检查了这个应用的通知设置,发现通知设置也被启用了。
无法检测到问题所在。谢谢你的帮助。
【问题讨论】:
【参考方案1】:有一个愚蠢的错误。
注意以下代码
NotificationChannel channel = new NotificationChannel("daily", "Daily Nectar", NotificationManager.IMPORTANCE_HIGH);
channel.setDescription("Daily Nectar");
channel.enableLights(true);
mNotificationManager.createNotificationChannel(channel);
mBuilder.setChannelId("chId");
传递给新 NotificationChannel 的频道 ID 和在 builder 上设置的频道 ID 不同。更新过程中错误引入的错误。
编码愉快...
【讨论】:
以上是关于通知未显示 - 已设置 chennel 以及小图标、标题和文本的主要内容,如果未能解决你的问题,请参考以下文章