Данный код (см. ниже) прекрасно работает в API ниже и выше 24. Не работает только в Android 7.0 Nougat. Вопрос: почему и как исправить?
Создаём custom уведомление:
layout.control_notification.xml
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/notify_button"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Вешаем обработчик на клик по области уведомления:
RemoteViews remoteViews = new RemoteViews(getPackageName(), R.layout.control_notification);
Intent actionIntent = new Intent(ACTION_NOTIFICATION_BUTTONS);
remoteViews.setOnClickPendingIntent(R.id.notify_button,
PendingIntent.getBroadcast(
this,
1,
actionIntent,
PendingIntent.FLAG_UPDATE_CURRENT
));
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CONTROL_CHANNEL_ID)
.setContent(remoteViews)
.setSmallIcon(R.drawable.ic_notification)
.setPriority(NotificationCompat.PRIORITY_HIGH);
Выводится уведомление через startForeground. На клики по уведомлению под 7-й не реагирует. Проверял и на телефоне и на эмуляторе.
На stackoverflow есть аналогичный
вопрос, но нет решения. Предложенный автором ответ с добавлением в разметку следующего кода, мне никак не помог.
android:focusable="true"
android:clickable="true"