下载后更新MediaStore.Audio

时间:2015-03-23 19:29:05

标签: android sqlite android-contentresolver mediastore android-download-manager

我的目标是下载一个mp3文件并在MediaStore中更新其信息。

问题是当我的DownloadManager完成时,MediaStore仍然可能没有使用新文件进行更新。这意味着当我用目标艺术家,专辑等更新MediaStore时,ContentValues没有要更新的MediaStore条目。我也试过手动将ContentValues插入MediaStore,但这似乎也不起作用。

@Override
public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
        /*insert or updating the MediaStore is not working here
        updating doesn't work because there is no MediaStore entry to update
        insert doesn't appear to do anything...*/
        ContentValues values = new ContentValues();
        values.put(MediaStore.Audio.Media.ARTIST, "artist");
        values.put(MediaStore.Audio.Media.ALBUM, "album");
        values.put(MediaStore.Audio.Media.DATA, "/storage/emulated/0/Music/filename");
        values.put(MediaStore.Audio.Media.IS_MUSIC, true);
        values.put(MediaStore.Audio.Media.MIME_TYPE, "audio/mp3");
        values.put(MediaStore.Audio.Media.TITLE, "title");
        getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);
    }
}

1 个答案:

答案 0 :(得分:0)

以下一行

getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);

MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 更改为

MediaStore.Audio.Media.getContentUriForPath(yourFile.getAbsolutePath());