问题描述
当我尝试Notification
在Android O中发送 a 时,我必须指定NotificationChannel
要发送到的 a。
如果我像这样使用旧方法(不设置任何频道)NotificationCompat.Builder(this)
,Notification
则不会显示。
对于像这样的无效频道也是如此NotificationCompat.Builder(this, "invalid")
或NotificationCompat.Builder(this, "")
。
当我通过Firebase Cloud Messaging发送通知并将我的应用程序置于后台且未指定通知通道时,它将是“杂项”通道中的通知。
当我尝试在上面提到的前台执行相同操作时,将无法创建名称为“Miscellaneous”且 ID为“{package}.MISCELLANEOUS”的通知通道,然后通过它发送。当我这样做时,会发生以下情况:
我想知道的
如何在没有像FCM这样的渠道的情况下发送通知,以便它进入常规的“杂项”渠道?
这个工作的例子
正如我上面提到的,它发生在FCM 通知中,但例如Gmail也使用杂项通道。那么我该如何使用它呢?
我相信如果杂项频道通常无法使用,他们会删除它。
简短的描述
为什么这段代码没有向“杂项”通知通道发送通知,它实际上没有发送任何通知(仅在 Android O 上,该代码适用于较低的 Android 版本)。
(getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager).notify(1, NotificationCompat.Builder(this, NotificationChannel.DEFAULT_CHANNEL_ID)
.setSmallIcon(R.drawable.small_icon)
.setContentTitle(URLDecoder.decode("Title", "UTF-8"))
.setContentText(URLDecoder.decode("Text", "UTF-8"))
.setColor(ContextCompat.getColor(applicationContext, R.color.color))
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT))
.build())