Не работает NotificationCompat.Builder
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = NotificationManagerCompat.getNotificationChannel("MyID");
if (notificationChannel == null) {
int importance = NotificationManager.IMPORTANCE_HIGH;
notificationChannel = new NotificationChannel("MyID", "Имя канала", importance);
notificationChannel.setLightColor(Color.GREEN);
notificationChannel.enableVibration(false);
NotificationManagerCompat.createNotificationChannel(notificationChannel);
}
}
new NotificationCompat.Builder(this, "MyID")
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setContentText("Hello World!")
.build();
Делал все как и в этом вопросе, но ничего не работает, а "createNotificationChannel" подсвечивает как ошибку.
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
Попробуйте использовать просто NotificationManager:
val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
или на джаве:
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
также хочу уточнить что вы пытаетесь использовать не экземпляр класса NotificationManagerCompat. То есть вам нужно предварительно создать его перед использованием, а вы даже не вызываете конструктор:
private NotificationManagerCompat(Context context) {
mContext = context;
mNotificationManager = (NotificationManager) mContext.getSystemService(
Context.NOTIFICATION_SERVICE);
}
поэтому и не вызывается ничего. Сделайте так:
NotificationManagerCompat manager = NotificationManagerCompat.from(someContext);
и дальше уже вызывайте метод:
public void createNotificationChannel(@NonNull NotificationChannel channel) {
if (Build.VERSION.SDK_INT >= 26) {
mNotificationManager.createNotificationChannel(channel);
}
}
Вот документация по NotificationManagerCompat.