我的目标是下载一个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);
}
}
答案 0 :(得分:0)
以下一行
getContentResolver().insert(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, values);
将 MediaStore.Audio.Media.EXTERNAL_CONTENT_URI 更改为
MediaStore.Audio.Media.getContentUriForPath(yourFile.getAbsolutePath());