Создайте намерение с именем настраиваемого действия, как это
Intent switchIntent = new Intent("com.example.app.ACTION_PLAY");
Затем зарегистрируйте PendingIntent
Broadcast
приемник
PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 100, switchIntent, 0);
Затем установите onClick
дляуправление воспроизведением, при необходимости выполните аналогичное настраиваемое действие для других элементов управления.
notificationView.setOnClickPendingIntent(R.id.btn_play_pause_in_notification, pendingSwitchIntent);
Далее зарегистрируйте настраиваемое действие в AudioPlayerBroadcastReceiver
следующим образом
<receiver android:name="com.example.app.AudioPlayerBroadcastReceiver" >
<intent-filter>
<action android:name="com.example.app.ACTION_PLAY" />
</intent-filter>
</receiver>
Наконец, когда нажата кнопка воспроизведенияNotification
RemoteViews
макет, вы получите play action
по BroadcastReceiver
public class AudioPlayerBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equalsIgnoreCase("com.example.app.ACTION_PLAY")){
// do your stuff to play action;
}
}
}
Вы также можете установить Custom Action
через Intent filter
из кода для зарегистрированного Broadcast receiver
какэто
// instance of custom broadcast receiver
CustomReceiver broadcastReceiver = new CustomReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addCategory(Intent.CATEGORY_DEFAULT);
// set the custom action
intentFilter.addAction("com.example.app.ACTION_PLAY");
// register the receiver
registerReceiver(broadcastReceiver, intentFilter);