如何向MediaPlayer服务添加通知?

时间:2016-06-11 03:50:27

标签: android android-service android-mediaplayer android-notifications

我有一个有效的MediaPlayer应用程序。 MainActivity(MyListActivity.java)将自身绑定到Service(MediaService.java)。服务在后台播放音乐。

我想知道一种添加通知的方法,以便用户可以通过它控制曲目。我正在使用一个接口将数据从服务传递给活动。

我不知道从哪里开始。我尝试了Android Documentation上的通知教程,但我不知道如何添加按钮,我找不到适合RemoteViews的教程。

这就是我的通知。

  

MediaService.java

    play(Track track) {
        ...
        showNotification(track);
    }

    showNoticiation(Track track){
        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.dj_plink_avatar)
                .setContentTitle(track.getTitle())
                .setContentText(track.getGenre());

        Intent resultIntent = new Intent(this, MyListActivity.class);
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
        stackBuilder.addParentStack(MyListActivity.class);
        stackBuilder.addNextIntent(resultIntent);

        PendingIntent pIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
        builder.setContentIntent(pIntent);

        notificationManager = (NotificationManager) getSystemService(Context
                .NOTIFICATION_SERVICE);
        notificationManager.notify(notificationID, builder.build());
    }

PS:Api 15最低请:)

1 个答案:

答案 0 :(得分:1)

NotificationCompat.MediaStyleAppCompat的一部分,需要完成所有样式并返回API 7。

您仍然需要为每个操作构建自己的PendingIntent,但这些操作可以通过任何有意义的方式完成。通常,这涉及使用PendingIntent.getService() Intent指向您的服务,以及您可以在onStartCommand()中使用的操作来区分按下了哪个按钮。

注意:请确保您使用的是v7.app.NotificationCompat,而不是v4版本。