Как исправить исключение «приемник медиа кнопки не найден» - PullRequest
0 голосов
/ 15 октября 2018

Я собираю медиаплеер и хочу обрабатывать действия из уведомлений, таких как «воспроизведение», «пауза».В своей деятельности я зарегистрировал MediaButtonReceiver

registerReceiver(MediaButtonReceiver(), IntentFilter(Intent.ACTION_MEDIA_BUTTON))

и создал медиа-уведомление с помощью

val builder: NotificationCompat.Builder = MediaStyleHelper.from(this, mediaSession!!)
builder.addAction(
                NotificationCompat.Action(
                        android.R.drawable.ic_media_previous,
                        "Previous",
                        MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)
                )
        )

, но когда я нажимаю кнопки действий на своем медиа-уведомлении, ничего не происходит.И когда я добавляю эти действия, выполнение

MediaButtonReceiver.buildMediaButtonPendingIntent(this, PlaybackStateCompat.ACTION_SKIP_TO_PREVIOUS)

выводит на консоль предупреждение

"W / MediaButtonReceiver: не удалось найти уникальный приемник мультимедийных кнопок в данном контексте, поэтомуне строить намерения ".

Но почему он не зарегистрирован, если я зарегистрировал его программно?

1 Ответ

0 голосов
/ 23 февраля 2019

Прежде чем вы сможете использовать MediaButtonReceiver функции, вам нужно добавить его в манифест , как описано в документации:

<receiver android:name="androidx.media.session.MediaButtonReceiver" >
  <intent-filter>
    <action android:name="android.intent.action.MEDIA_BUTTON" />
  </intent-filter>
</receiver>

Если вы не используете библиотеки AndroidXтем не менее, вам нужно использовать старое имя класса: android.support.v4.media.session.MediaButtonReceiver

...