Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更新通知内容_Android_Notifications - Fatal编程技术网

Android 如何更新通知内容

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

我使用库获取音乐媒体元数据(mu),然后我想在通知中显示它
我试过这个:

  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中这样做了,但我想这样做使用通知!仍然有效。可能有其他问题与之冲突?网络连接不稳定?例如,它是否重新连接?音乐数据工作正常,但当音乐更改时,新音乐的新数据没有出现