Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Control del reproductor de música en la notificación

Cómo configurar la notificación con play / pause, botón siguiente y anterior en android.

Soy nuevo con Android y también en el desbordamiento de la pila. Así que por favor, tenga paciencia conmigo.

  • Cómo leer la lista de contactos de whatsapp
  • ¿Por qué el lienzo no es del mismo tamaño que la vista en onDraw? (Androide)
  • ¿Cómo agregar valor de notificación para el elemento en NavigationView para el cajón de diseño de material?
  • CoordinatorLayout con barra de herramientas y fragmento
  • Transmisión desde M3U en Android
  • Android: ¿Crear ListView en XML?
  • Introduzca aquí la descripción de la imagen

    Puse la notificación cuando la canción comienza a jugar como abajo:

    @SuppressLint("NewApi") public void setNotification(String songName){ String ns = Context.NOTIFICATION_SERVICE; NotificationManager notificationManager = (NotificationManager) getSystemService(ns); @SuppressWarnings("deprecation") Notification notification = new Notification(R.drawable.god_img, null, System.currentTimeMillis()); RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification_mediacontroller); //the intent that is started when the notification is clicked (works) Intent notificationIntent = new Intent(this, AudioBookListActivity.class); PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.contentView = notificationView; notification.contentIntent = pendingNotificationIntent; notification.flags |= Notification.FLAG_NO_CLEAR; //this is the intent that is supposed to be called when the button is clicked Intent switchIntent = new Intent(this, AudioPlayerBroadcastReceiver.class); PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 0, switchIntent, 0); notificationView.setOnClickPendingIntent(R.id.btn_play_pause_in_notification, pendingSwitchIntent); notificationManager.notify(1, notification); } 

    Tengo crear BroadcastReceiver como abajo: `

      private class AudioPlayerBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); System.out.println("intent action = " + action); long id = intent.getLongExtra("id", -1); if(Constant.PLAY_ALBUM.equals(action)) { //playAlbum(id); } else if(Constant.QUEUE_ALBUM.equals(action)) { //queueAlbum(id); } else if(Constant.PLAY_TRACK.equals(action)) { //playTrack(id); } else if(Constant.QUEUE_TRACK.equals(action)) { //queueTrack(id); } else if(Constant.PLAY_PAUSE_TRACK.equals(action)) { // playPauseTrack(); System.out.println("press play"); } else if(Constant.HIDE_PLAYER.equals(action)) { // hideNotification(); System.out.println("press next"); } else { } } }` 

    Ahora, fijé la notificación de encargo con éxito pero cómo puedo manejar los botones de la notificación y sus acontecimientos como el juego / la pausa, anterior y siguiente … el etc. También intento usar el receptor de la difusión pero no podría conseguir ninguna respuesta.

    Buscando solución y orientación de expertos, por favor, ayúdame.

    Gracias por adelantado.

  • Implementación de la retroinstalación adecuada y manejo de botones de inicio mediante la barra de herramientas en Android
  • ¿Por qué no se recomienda la comunicación directa entre fragmentos?
  • Eliminar el encabezado de listView
  • USB Accessory API en el Samsung Galaxy S2 Android
  • Valores XML de Android - Conjunto de cadenas :: ¿Colocación de una cotización en el valor?
  • Obtener notificaciones actuales android
  • One Solution collect form web for “Control del reproductor de música en la notificación”

    Debe establecer una custom intent action , no la clase de componente AudioPlayerBroadcastReceiver .

    Crear una intención con un nombre de acción personalizado como este

      Intent switchIntent = new Intent("com.example.app.ACTION_PLAY"); 

    A continuación, registre el receptor PendingIntent Broadcast

      PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 100, switchIntent, 0); 

    A continuación, establezca un onClick para el control de reproducción, haga una acción personalizada similar para otros controles si es necesario.

      notificationView.setOnClickPendingIntent(R.id.btn_play_pause_in_notification, pendingSwitchIntent); 

    Siguiente, Registrar la acción personalizada en AudioPlayerBroadcastReceiver esta manera

      <receiver android:name="com.example.app.AudioPlayerBroadcastReceiver" > <intent-filter> <action android:name="com.example.app.ACTION_PLAY" /> </intent-filter> </receiver> 

    Por último, cuando se hace clic en la presentación de Notification RemoteViews , se recibirá la play action por parte de 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; } } } 

    EDIT: cómo establecer el filtro de intención para el receptor de difusión registrado en código

    También puede configurar el Intent filter Custom Action través de Intent filter de código para el Broadcast receiver registrado como este

      // 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); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.