Описание проблемы
Когда я пытаюсь отправить Notification
в Android O, я должен указать NotificationChannel
для отправки.
Если я использую старый метод (не настраивая какой-либо канал), такой как NotificationCompat.Builder(this)
, Notification
не будет отображаться.
То же самое относится к неверному каналу, подобному этому NotificationCompat.Builder(this, "invalid")
или NotificationCompat.Builder(this, "")
.
Когда я отправляю уведомление через Firebase Cloud Messaging и мое приложение в фоновом режиме не указано ни одного канала уведомлений, это будет уведомление в канале "Разное" .
Когда я пытаюсь сделать то же самое на переднем плане, упомянутое выше не будет работать, и ни один из них не будет создавать канал уведомлений с именем "Разное" и 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())