Android 如何更新通知内容
我使用库获取音乐媒体元数据(mu),然后我想在通知中显示它Android 如何更新通知内容,android,notifications,Android,Notifications,我使用库获取音乐媒体元数据(mu),然后我想在通知中显示它 我试过这个: Uri uri = Uri.parse(stream); OnNewMetadataListener ilistener = new OnNewMetadataListener() { @Override public void onNewHeaders(String stringUri, List<String> name, List<String> d
我试过这个:
Uri uri = Uri.parse(stream);
OnNewMetadataListener ilistener = new OnNewMetadataListener() {
@Override
public void onNewHeaders(String stringUri, List<String> name, List<String> desc, List<String> br, List<String> genre, List<String> info) {
}
@Override
public void onNewStreamTitle(String stringUri, final String streamTitle) {
int color = ContextCompat.getColor(getApplicationContext(),R.color.black_overlay);
NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("Teskies (Online Radio)")
.setAutoCancel(false)
.setOngoing(true)
.setOnlyAlertOnce(true)
.setWhen( System.currentTimeMillis())
.setContentText("Song :"+streamTitle);
Intent notificationIntent = new Intent(getApplicationContext(),MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(),0,notificationIntent,PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
NotificationManager manger = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
builder.setColor(color);
assert manger != null;
Notification notification = builder.build();
manger.notify(0,notification);
}
};
AudiostreamMetadataManager.getInstance()
.setUri(uri)
.setOnNewMetadataListener(ilistener)
.setUserAgent(UserAgent.WINDOWS_MEDIA_PLAYER)
.start();
Uri=Uri.parse(流);
OnnewmetataListener ilistener=新的OnnewmetataListener(){
@凌驾
公共标题(字符串stringUri、列表名称、列表描述、列表br、列表类型、列表信息){
}
@凌驾
public void onNewStreamTitle(字符串stringUri,最终字符串streamTitle){
int color=ContextCompat.getColor(getApplicationContext(),R.color.black\u覆盖);
NotificationCompat.Builder=新建NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(R.mipmap.ic_启动器)
.setContentTitle(“Teskies(在线广播)”)
.setAutoCancel(错误)
.正在进行(正确)
.setonlylertonce(真)
.setWhen(System.currentTimeMillis())
.setContentText(“歌曲:+streamTitle”);
Intent notificationIntent=新意图(getApplicationContext(),MainActivity.class);
PendingEvent contentIntent=PendingEvent.getActivity(getApplicationContext(),0,notificationIntent,PendingEvent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
NotificationManager Manager=(NotificationManager)getSystemService(Context.NOTIFICATION\u服务);
builder.setColor(颜色);
断言管理器!=null;
通知通知=builder.build();
经理通知(0,通知);
}
};
AudiostreamMetadataManager.getInstance()
.setUri(uri)
.setonnewmetadatastener(ilistener)
.setUserAgent(UserAgent.WINDOWS\u MEDIA\u PLAYER)
.start();
它显示当前的音乐信息,但在下一首音乐开始时,旧音乐的标题会保留在通知中,它不会用新数据更新。这里的代码似乎有效。你确定收到了新的元数据吗?你能提供流式url吗?@tim Yes!这是url:因为我已经在TextView中这样做了,但我想这样做使用通知!仍然有效。可能有其他问题与之冲突?网络连接不稳定?例如,它是否重新连接?音乐数据工作正常,但当音乐更改时,新音乐的新数据没有出现