/// <summary> /// When we start on the foreground we will present a notification to the user /// When they press the notification it will take them to the main page so they can control the music /// </summary> private void StartNotification() { if (mediaSessionCompat == null) { return; } var pendingIntent = PendingIntent.GetActivity(ApplicationContext, 0, new Intent(ApplicationContext, typeof(MainActivity)), PendingIntentFlags.UpdateCurrent); MediaMetadataCompat currentTrack = mediaControllerCompat.Metadata; Android.Support.V7.App.NotificationCompat.MediaStyle style = new Android.Support.V7.App.NotificationCompat.MediaStyle(); style.SetMediaSession(mediaSessionCompat.SessionToken); Intent intent = new Intent(ApplicationContext, typeof(MediaPlayerService)); intent.SetAction(ActionStop); PendingIntent pendingCancelIntent = PendingIntent.GetService(ApplicationContext, 1, intent, PendingIntentFlags.CancelCurrent); style.SetShowCancelButton(true); style.SetCancelButtonIntent(pendingCancelIntent); NotificationCompat.Builder builder = new NotificationCompat.Builder(ApplicationContext) .SetStyle(style) .SetContentTitle(currentTrack.GetString(MediaMetadata.MetadataKeyTitle)) .SetContentText(currentTrack.GetString(MediaMetadata.MetadataKeyArtist)) .SetContentInfo(currentTrack.GetString(MediaMetadata.MetadataKeyAlbum)) .SetSmallIcon(Resource.Drawable.album_art) .SetLargeIcon(Cover as Bitmap) .SetContentIntent(pendingIntent) .SetShowWhen(false) .SetOngoing(MediaPlayerState == PlaybackStateCompat.StatePlaying) .SetVisibility(NotificationCompat.VisibilityPublic); builder.AddAction(GenerateActionCompat(Android.Resource.Drawable.IcMediaPrevious, "Previous", ActionPrevious)); AddPlayPauseActionCompat(builder); builder.AddAction(GenerateActionCompat(Android.Resource.Drawable.IcMediaNext, "Next", ActionNext)); style.SetShowActionsInCompactView(0, 1, 2); NotificationManagerCompat.From(ApplicationContext).Notify(NotificationId, builder.Build()); }
/// <summary> /// When we start on the foreground we will present a notification to the user /// When they press the notification it will take them to the main page so they can control the music /// </summary> private void StartNotification () { if (mediaSessionCompat == null) return; var pendingIntent = PendingIntent.GetActivity(ApplicationContext, 0, new Intent(ApplicationContext, typeof(MainActivity)), PendingIntentFlags.UpdateCurrent); MediaMetadataCompat currentTrack = mediaControllerCompat.Metadata; Android.Support.V7.App.NotificationCompat.MediaStyle style = new Android.Support.V7.App.NotificationCompat.MediaStyle(); style.SetMediaSession(mediaSessionCompat.SessionToken); Intent intent = new Intent(ApplicationContext, typeof(MediaPlayerService)); intent.SetAction(ActionStop); PendingIntent pendingCancelIntent = PendingIntent.GetService(ApplicationContext, 1, intent, PendingIntentFlags.CancelCurrent); style.SetShowCancelButton(true); style.SetCancelButtonIntent(pendingCancelIntent); NotificationCompat.Builder builder = new NotificationCompat.Builder(ApplicationContext) .SetStyle(style) .SetContentTitle (currentTrack.GetString(MediaMetadata.MetadataKeyTitle)) .SetContentText (currentTrack.GetString(MediaMetadata.MetadataKeyArtist)) .SetContentInfo (currentTrack.GetString(MediaMetadata.MetadataKeyAlbum)) .SetSmallIcon (Resource.Drawable.album_art) .SetLargeIcon (Cover as Bitmap) .SetContentIntent(pendingIntent) .SetShowWhen(false) .SetOngoing(MediaPlayerState == PlaybackStateCompat.StatePlaying) .SetVisibility(NotificationCompat.VisibilityPublic); builder.AddAction(GenerateActionCompat(Android.Resource.Drawable.IcMediaPrevious, "Previous", ActionPrevious)); AddPlayPauseActionCompat(builder); builder.AddAction(GenerateActionCompat(Android.Resource.Drawable.IcMediaNext, "Next", ActionNext)); style.SetShowActionsInCompactView(0, 1, 2); NotificationManagerCompat.From(ApplicationContext).Notify(NotificationId, builder.Build()); }