Мой код использует или переопределяет устаревший API

#java #android #notifications

Вопрос:

У меня есть код, который может работать для одной версии, но для последней версии не может. Android studio пишет: «использует или переопределяет устаревший API. Перекомпилируйте с помощью-Xlint:устаревание для получения подробной информации».

Мой код таков:

  Notification.Builder builder = new Notification.Builder(this);
        builder.setContentTitle("Words reminder");
        builder.setContentText("It's time to try yourself!");
        builder.setSmallIcon(R.drawable.ic_stat_name);
        builder.setAutoCancel(true);
        builder.setPriority(Notification.PRIORITY_HIGH);
        //builder.build().flags |= Notification.FLAG_AUTO_CANCEL;
        Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        builder.setSound(alarmSound);

        Intent notifyIntent = new Intent(this, RightOrNot.class);
        notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_CLEAR_TASK);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notifyIntent, 0);

        builder.setContentIntent(pendingIntent);
        Notification notificationCompat = builder.build();
        NotificationManagerCompat managerCompat = NotificationManagerCompat.from(this);
        managerCompat.notify(NOTIFICATION_ID, notificationCompat);
 

Я считаю, что проблема в первой строке:

 Notification.Builder builder = new Notification.Builder(this);
 

Знаете ли вы, как я могу исправить строку или использовать что-то другое, что будет работать для всех версий?

Комментарии:

1. Это всего лишь предупреждение. Ты можешь не обращать на это внимания.

2. Но это не работает на других телефонах, использующих последнюю версию

3. Вы должны создать канал уведомлений для oreo и вышеперечисленных версий.

Ответ №1:

Согласно документам разработчика Android public Builder(Context context) , он устарел, и вам следует попробовать использовать public Builder(Context context, String channelID) его вместо этого. Вам нужно использовать канал уведомлений. Следуйте инструкциям здесь.

Комментарии:

1. Спасибо, но это не помогает, то же самое предупреждение и по-прежнему не удается отправить уведомление на последние версии телефонов(

2. Почему вы приняли ответ, который, как вы говорите, не помогает?

3. Проблема должна заключаться в вызове функции компоновщика, поскольку в документах api говорится, что функция компоновщика устарела. Какие проблемы возникают у вас сейчас? В чем проблема?