Я использую ExoPlayer для воспроизведения звука в фоновом режиме.Служба использует PlayerNotificationManager в ExoPlayer для отображения уведомления.
playerNotificationManager = PlayerNotificationManager.createWithNotificationChannel(
this,
"Playback",
R.string.notification_channel_playback,
R.id.playback_notification,
DescriptionProvider()
)
Я бы хотел установить contentIntent
в уведомлении так, чтобы нажатие в любом месте за пределами кнопок запускало действие (для отображения дополнительной информации овоспроизводимое мультимедиа).
Однако у меня нет доступа к фактическому построителю уведомлений.Вместо этого все, что я получаю, это само уведомление, установка contentIntent
на экземпляре уведомления, кажется, ничего не делает (и кажется, что этого можно ожидать).
playerNotificationManager.setNotificationListener(object: PlayerNotificationManager.NotificationListener {
override fun onNotificationStarted(notificationId: Int, notification: Notification) {
val intent = intentFor<MyActivity>()
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val pending = PendingIntent.getForegroundService(
applicationContext,
1,
intent,
0
)
notification.contentIntent = pending
}
override fun onNotificationCancelled(notificationId: Int) {
stopSelf()
}
})
Чтобы исключить любые проблемы сЗапуская Действия, я также попробовал Intent для воспроизведения / приостановки воспроизведения мультимедиа, который тоже не работал.
Я мог бы, возможно, без особых усилий переключиться на пользовательское уведомление, но если есть какой-то способ сделать это сExoPlayer, который был бы очень удобен.
Некоторые вещи, которые я изучил, не работают:
playerNotificationManager.invalidate()
playerNotificationManager.setStopAction()
Я не хочудополнительная кнопка! playerNotificationManager.setUseNavigationAction()
это кнопки пропуска
Или, если задать один вопрос: можно ли задать действие, которое нужно выполнить при нажатии (вне кнопок) на ExoPlayerуправляемые уведомления?