List of usage examples for android.support.v4.media.session MediaControllerCompat getSessionActivity
public PendingIntent getSessionActivity()
From source file:com.example.android.mediabrowserservice.MediaNotificationHelper.java
public static Notification createNotification(Context context, MediaSessionCompat mediaSession) { MediaControllerCompat controller = mediaSession.getController(); MediaMetadataCompat mMetadata = controller.getMetadata(); PlaybackStateCompat mPlaybackState = controller.getPlaybackState(); if (mMetadata == null || mPlaybackState == null) { return null; }//w w w .j a v a 2s . c om boolean isPlaying = mPlaybackState.getState() == PlaybackStateCompat.STATE_PLAYING; NotificationCompat.Action action = isPlaying ? new NotificationCompat.Action(R.drawable.ic_pause_white_24dp, context.getString(R.string.label_pause), MediaButtonReceiver.buildMediaButtonPendingIntent(context, PlaybackStateCompat.ACTION_PAUSE)) : new NotificationCompat.Action(R.drawable.ic_play_arrow_white_24dp, context.getString(R.string.label_play), MediaButtonReceiver .buildMediaButtonPendingIntent(context, PlaybackStateCompat.ACTION_PLAY)); MediaDescriptionCompat description = mMetadata.getDescription(); Bitmap art = description.getIconBitmap(); if (art == null) { // use a placeholder art while the remote art is being downloaded. art = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_default_art); } NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context); notificationBuilder.setStyle(new NotificationCompat.MediaStyle() // show only play/pause in compact view. .setShowActionsInCompactView(new int[] { 0 }).setMediaSession(mediaSession.getSessionToken())) .addAction(action).setSmallIcon(R.drawable.ic_notification).setShowWhen(false) .setContentIntent(controller.getSessionActivity()).setContentTitle(description.getTitle()) .setContentText(description.getSubtitle()).setLargeIcon(art) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC); return notificationBuilder.build(); }