У меня проблема с моим классом BroadcastReceiver, который находится внутри моей MainActivity как внутреннего класса. Каждый раз, когда я нажимаю кнопку в уведомлении моего приложения, я получаю эту ошибку:
java.lang.RuntimeException: Unable to instantiate receiver com.oniktech.testmediaservice.MainActivity$MediaReceiver: java.lang.InstantiationException: java.lang.Class<com.oniktech.testmediaservice.MainActivity$MediaReceiver> has no zero argument constructor
вот мой код:
val playPauseAction = NotificationCompat.Action(
icon, play_pause,
MediaButtonReceiver.buildMediaButtonPendingIntent(
this,
PlaybackStateCompat.ACTION_PLAY_PAUSE
)
)
builder.setContentTitle("my test")
.addAction(playPauseAction)
.setStyle(
androidx.media.app.NotificationCompat.MediaStyle()
.setMediaSession(mediaSession.getSessionToken())
.setShowActionsInCompactView(0)
)
notificatioManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificatioManager.notify(0, builder.build())
и вот мой внутренний класс:
inner class MediaReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
MediaButtonReceiver.handleIntent(mediaSession, intent)
}
}
Я знаю, что я не должен использовать внутренний класс в этом случае. Но я должен использовать свой объект 'mediaSession' в нем. Что я должен делать? спасибо за вашу помощь.