У меня есть виджет для музыкального проигрывателя, и я хочу иметь возможность отправлять трансляции при нажатии различных кнопок.Я хочу сделать, чтобы при нажатии кнопки виджет отправлял публичную трансляцию другому BroadcastReceiver, чтобы он мог обрабатывать различные действия.
В моем классе активности с BroadcastReceiver:
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Constants.ACTION_NEXT)) {
Log.d("RECEIVER", "ACTION_NEXT");
}
}
};
@Override
protected void onStart() {
super.onStart();
IntentFilter filter = new IntentFilter();
//Widget actions
filter.addAction(Constants.ACTION_NEXT);
registerReceiver(broadcastReceiver, new IntentFilter(filter));
}
В моем виджете:
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(Constants.ACTION_NEXT), 0);
views.setOnClickPendingIntent(R.id.WidgetNextButton, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
Любая помощь или другие решения очень ценятся!
РЕДАКТИРОВАТЬ: Забыл упомянуть мою актуальную проблему: BroadcastReceiver никогда не получает трансляцию