У меня был отдельный класс extends BroadcastReceiver и я смог определить его в манифесте. Однако я хотел использовать некоторые функции в своем классе MPFragment, поэтому я поместил класс приемника вещания в класс Fragment как внутренний класс, чтобы я мог получить доступ к функциям внутри Fragment. Но теперь я не уверен, как определить это в манифесте. xml. Я попробовал несколько способов из Можно ли определить приемник вещания как внутренний класс в файле манифеста? , однако я получу сообщение от logcat: «Не удалось найти уникальный зарегистрированный приемник мультимедийной кнопки в данный контекст. Что я должен сделать, чтобы это исправить?
//manifest.xml
<receiver android:name=".MPFragment$MyReceiver"/>
class MPFragment : Fragment() {
//...other functions ...
var broadcastReceiver = MyReceiver()
class MyReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
context?.sendBroadcast(Intent("TRACKS_TRACKS")
.putExtra("actionName", intent?.getAction()))
var action = intent?.getExtras()?.getString("actionName")
Log.i(MYLOG, "actionstr " + action + ", " + intent?.action)
when (action) {
CreateNotification.ACTION_PREVIOUS -> {
Log.i(MYLOG, "action previous clicked")
}
CreateNotification.ACTION_NEXT -> {
Log.i(MYLOG, "action next clicked")
// nextSong()
}
CreateNotification.ACTION_PLAY -> {
Log.i(MYLOG, "action play clicked")
}
}
}
}
}