如何向 MediaPlayer 服务添加通知?
How to add a notification to a MediaPlayer Service?
我有一个可用的 MediaPlayer 应用程序。 MainActivity (MyListActivity.java) 将自己绑定到一个服务 (MediaService.java)。该服务在后台播放音乐。
我想知道一种添加通知的方法,以便用户可以通过它控制曲目。我正在使用接口将数据从服务传递到 Activity。
我不知道从哪里开始。我尝试了 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 个 :)
NotificationCompat.MediaStyle, part of AppCompat,完成所需的所有样式并返回到 API 7.
您仍然需要为每个操作构建您自己的 PendingIntent
,但可以通过任何有意义的方式来完成这些操作。通常,这涉及使用 PendingIntent.getService() 和指向您的服务的 Intent
以及您可以在 onStartCommand()
中使用的操作来区分按下了哪个按钮。
注意:确保您使用的是 v7.app.NotificationCompat,而不是 v4 版本。
我有一个可用的 MediaPlayer 应用程序。 MainActivity (MyListActivity.java) 将自己绑定到一个服务 (MediaService.java)。该服务在后台播放音乐。
我想知道一种添加通知的方法,以便用户可以通过它控制曲目。我正在使用接口将数据从服务传递到 Activity。
我不知道从哪里开始。我尝试了 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 个 :)
NotificationCompat.MediaStyle, part of AppCompat,完成所需的所有样式并返回到 API 7.
您仍然需要为每个操作构建您自己的 PendingIntent
,但可以通过任何有意义的方式来完成这些操作。通常,这涉及使用 PendingIntent.getService() 和指向您的服务的 Intent
以及您可以在 onStartCommand()
中使用的操作来区分按下了哪个按钮。
注意:确保您使用的是 v7.app.NotificationCompat,而不是 v4 版本。