Я знаю, почему это предупреждение появляется в моем случае, я не создавал канал, но это не вопрос , я хочу знать, как его поймать или проверить, существует ли канал в коде, чтобы обработать его перед публикацией уведомления.
«Предупреждение разработчика для пакета «com.app» не удалось опубликовать уведомление на канале "channel1" подробнее см. в логе" Спасибо.
Вы можете использовать NotificationManager.GetNotificationChannel
, и он вернет экземпляр NotificationChannel
, если он существует, или null
, если его нет.
Быстрый пример:
using (var notificationManager = NotificationManager.FromContext(ApplicationContext))
{
var channelName = "SomeChannelName";
if (Build.VERSION.SdkInt >= BuildVersionCodes.O)
{
NotificationChannel channel = notificationManager.GetNotificationChannel(channelName);
if (channel == null)
{
channel = new NotificationChannel(channelName, channelName, NotificationImportance.Low)
{
LockscreenVisibility = NotificationVisibility.Public
};
channel.SetShowBadge(true);
notificationManager.CreateNotificationChannel(channel);
}
}
// build your notification
}