Notificación RemoteView en el oyente de clics

Así que, después de un montón de rascarse la cabeza, estoy en el final de mi ingenio. Tengo un reproductor multimedia RemoteViews en mi notificación y me gustaría poder acceder a los botones de reproducción, pausa, anterior y siguiente.

Sé que setOnClickPendingIntent() se utilizará para comunicarse desde la notificación. Sin embargo, me quedo preguntándome cómo funcionará.

¿Es posible permitir que el servicio maneje los clics?

He intentado esto, pero en vano. Yo estaba tratando de dejar que el servicio de manejar la pausa y el reanudación del jugador:

 rm = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notif_media_player); Intent intent = new Intent(getApplicationContext(), MusicService.class); intent.putExtra(REQUEST_CODE, PAUSE); PendingIntent pending = PendingIntent.getService(getApplicationContext(), PAUSE, intent, 0); rm.setPendingIntentTemplate(R.id.pause, pending); Notification notif = new NotificationCompat.Builder(getApplicationContext()) .setOngoing(true) .setSmallIcon(R.drawable.ic_launcher) .setContent(rm) .build(); NotificationManager mgr = (NotificationManager) getApplicationContext() .getSystemService(Context.NOTIFICATION_SERVICE); mgr.notify(NOTIFICATION_ID, notif); 

y mi IBinder es nulo. Si eso hace una diferencia.

¿Cómo puedo pausar y reproducir música desde la notificación?

Basado en la recomendación de CommonsWare :

  rm = new RemoteViews(getApplicationContext().getPackageName(), R.layout.notif_media_player); Intent pauseIntent = new Intent(getApplicationContext(), MusicService.class); Intent dismissIntent = new Intent(getApplicationContext(), MusicService.class); pauseIntent.putExtra(REQUEST_CODE, PAUSE); dismissIntent.putExtra(REQUEST_CODE, DISMISS); PendingIntent pause = PendingIntent.getService(getApplicationContext(), PAUSE, pauseIntent, 0); PendingIntent dismiss = PendingIntent.getService(getApplicationContext(), DISMISS, dismissIntent, 0); rm.setOnClickPendingIntent(R.id.pause, pause); rm.setOnClickPendingIntent(R.id.dismiss, dismiss); Notification notif = new NotificationCompat.Builder(getApplicationContext()) .setOngoing(true) .setSmallIcon(R.drawable.ic_launcher) .setContent(rm) .build(); NotificationManager mgr = (NotificationManager) getApplicationContext() .getSystemService(Context.NOTIFICATION_SERVICE); mgr.notify(NOTIFICATION_ID, notif); 
  • Continuar el servicio incluso si la aplicación se ha eliminado de la aplicación Reciente.
  • Análisis BLE de Android en el servicio de fondo
  • Mostrar ProgressDialog en una clase de servicio
  • ¿Puede iniciar un IntentService en un proceso separado?
  • ¿Qué es un JobService en Android?
  • Aclaración de setUpdateCurrent en OneOffTask
  • ¿Está garantizado un servicio android para llamar a onDestroy ()?
  • Android service stopSelf (int)
  • Captura de notificaciones de otras aplicaciones
  • OnServiceConnected () no se llama
  • La escritura concurrente a la base de datos android (de múltiples servicios)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.