Всем привет =)
У кого нибудь в одном приложении присутствует больше одного notification channel?
Суть проблемы: два канала.. один с максимальным приоритетом и висит всегда ибо сервис фореграунд.. второй канал для отображения нотификаций.. и в какой то момент нотификации со второго канала отображаются в первом канале (постоянной нотификации)
У меня один способ создания нотификаций для второго канала.. и там указан айдишник второго канала.. то есть "перепутать" вообще нет вариантов.. случайной подмены тоже быть не может..
яб с радостью продебажил если бы не два но.. первое это поведение плавающее, второе воспроизводится только на релизной сборке
Момент создания каналов:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel mainChannel = new NotificationChannel(MAIN_CHANNEL_ID, MAIN_CHANNEL_NAME,
NotificationManager.IMPORTANCE_HIGH);
Uri soundUriMain = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + this.getPackageName() + "/" + R.raw.online);
AudioAttributes audioAttributesMain = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
mainChannel.setSound(soundUriMain, audioAttributesMain);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(mainChannel);
NotificationChannel messageChannel = new NotificationChannel(MESSAGE_CHANNEL_ID, MESSAGE_CHANNEL_NAME,
NotificationManager.IMPORTANCE_DEFAULT);
Uri soundUriMessage = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + this.getPackageName() + "/" + R.raw.message);
messageChannel.setSound(soundUriMessage, audioAttributesMain);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(messageChannel);
Notification notification = new NotificationCompat.Builder(this, MAIN_CHANNEL_ID)
.setContentTitle("")
.setContentText("")
.setAutoCancel(true)
.build();
startForeground(1, notification);
}
Момент создания нотификации:
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context.getApplicationContext(), MESSAGE_CHANNEL_ID);
mBuilder.setSmallIcon(R.drawable.ic_launcher);
mBuilder.setContentTitle(contentTitle);
if (!TextUtils.isEmpty(message)) {
mBuilder.setContentText(message);
} else {
mBuilder.setContentText(context.getString(R.string.incoming_files_from, contentTitle));
}
mBuilder.setPriority(checkNotificationPriorityMessage(context, user));
mBuilder.setAutoCancel(true);
int notificationID = (int) user.getId();
mNotificationManager.notify(notificationID, mBuilder.build());