Я хочу иметь возможность определять, когда на моем головном сиденье нажата кнопка паузы (когда медиафайлы не воспроизводятся)
Я пробовал всевозможные приемники и сервисы, но ничего не получалось. Пока я не протестировал этот код, я получил его после удаления всего наворота из очень старого примера.
import android.content.ComponentName
import android.content.Intent
import android.os.Bundle
import android.support.v4.media.session.MediaSessionCompat
import androidx.appcompat.app.AppCompatActivity
import androidx.media.session.MediaButtonReceiver
class MainActivity : AppCompatActivity() {
private lateinit var mMediaSessionCompat: MediaSessionCompat
private val mMediaSessionCallback: MediaSessionCompat.Callback = object : MediaSessionCompat.Callback() {
override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean {
println("WORKS!!!")
return super.onMediaButtonEvent(mediaButtonEvent)
}
}
private fun initMediaSession() {
val mediaButtonReceiver = ComponentName(applicationContext, MediaButtonReceiver::class.java)
mMediaSessionCompat = MediaSessionCompat(applicationContext, "Tag", mediaButtonReceiver, null)
mMediaSessionCompat.setCallback(mMediaSessionCallback)
mMediaSessionCompat.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS or MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS)
mMediaSessionCompat.isActive = true
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
initMediaSession()
setContentView(R.layout.activity_main)
}
override fun onDestroy() {
super.onDestroy()
mMediaSessionCompat.release()
}
}
Этот код некоторое время работал, но в других проектах почему-то не работал и после перезагрузки этот код уже не работает. У меня нет причин, по которым он перестал работать, но я пытался заставить его работать несколько часов, и я не понимаю, почему он не работает. Может ли кто-нибудь просто дать мне минимальный воспроизводимый пример, который работает, или указать, что мне не хватает.
onKeyUp
, отфильтровать медиа-кнопки и доставить их непосредственно в ваш медиа-сеанс. - person Pawel   schedule 02.06.2021