#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 говорится, что функция компоновщика устарела. Какие проблемы возникают у вас сейчас? В чем проблема?