Я пытаюсь настроить уведомления в своем приложении для Android, но NotificationCompat не примет идентификатор канала в качестве аргумента. В моем файле Gradle у меня есть
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:support-compat:27.1.1'
Я также создал каналы в своем коде для начинающих, как показано ниже.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(
CHANNEL_1, "Channel 1", NotificationManager.IMPORTANCE_LOW);
channel.setDescription("This is channel 1");
NotificationManager manager = getSystemService(NotificationManager.class);
if (manager != null)
manager.createNotificationChannel(channel);
}
Наконец, у меня есть код активности.
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_1)
...... и вот где я нахожу свою проблему. Android Studio сообщает, что блок подписи неверен. Он не принимает идентификатор канала в качестве второго аргумента. Я импортировал как v4, так и v7 для NotificationCompat, и ни один не работает. Я также пытался
NotificationCompat.Builder mBuilder = //continued code
Я использовал приведенные ниже ссылки на Android и не нашел решения.
https://developer.android.com/training/notify-user/channels
https://developer.android.com/training/notify-user/build-notification#java
Я также просмотрел два сообщения StackOverflow, которые находятся ниже, и до сих пор нет решения для моего случая.
NotificationCompat.Builder () не принимает идентификатор канала в качестве аргумента
NotificationCompat.Builder не принимает второй аргумент
Я не могу понять, почему эта проблема присутствует.