乐队名称和歌曲名称不显示在推送通知中

Name of Band and Title of Song do not display in push notifications

所以我有这段代码,它在我的通知中运行良好。但是没有显示正确的歌曲。

我的 ("Standard Title") 和 ("songTitle") 测试可以很好地处理虚拟数据。但是实际的歌曲数据不会显示为 ("Metallica") 或 ("Master Of Puppets")。我的原始文件夹中有文件,歌曲播放正常,但当应用程序运行时,正确的(乐队名称)和(歌曲名称)不显示。

我的问题是;我应该创建 xml 文件来保存该信息吗?或者值文件夹中的一组字符串?

感谢您的帮助。

// Notification Manager
    NotificationManager mgr = 
            (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

    // Setting the default action.
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    Intent intent = new Intent(this, MainActivity.class);
    PendingIntent pIntent = 
        PendingIntent.getActivity(this, REQUEST_NOTIFY_LAUNCH, intent, 0);
    // Setting the default action.
    builder.setContentIntent(pIntent);
    builder.setSmallIcon(R.drawable.ic_launcher);
    builder.setLargeIcon(BitmapFactory.decodeResource(
        getResources(), R.drawable.ic_launcher));
    builder.setContentTitle("Standard Title");
    builder.setContentText("songTitle");
    mgr.notify(STANDARD_NOTIFICATION, builder.build());

    }

不要在字符串文件中声明乐队和歌曲名称。这真的是不好的做法。如果您播放一首不在您的弦乐文件中的歌曲,会发生什么情况?文件有多大?相反,从音乐文件本身获取该信息。

你会想要使用 MediaMetadataRetriever,当一首新歌开始播放时使用类似这样的东西。

这是从 mp3 文件中获取标题的示例:

MediaMetadataRetriever mediaMetadataRetriever = new MediaMetadataRetriever(); Uri uri = Uri.fromFile(mp3File); mediaMetadataRetriever.setDataSource(yourContext, uri); String title = mediaMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);

也看看http://developer.android.com/reference/android/media/MediaMetadataRetriever.html