[英]Loading MediaStore.Audio.Media.DATA not working for android 10 and above?
[英]MediaStore.Audio.Media.DATA is empty for files on USB-Drive
我正在通过搜索音乐文件
proj = new String[] {[...],
MediaStore.Audio.Media.DATA
};
Cursor musiccursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, MediaStore.Audio.Media.IS_MUSIC + "=1", null, null);
[...]
int ixdata = musiccursor.getColumnIndex(MediaStore.Audio.Media.DATA);
[...]
while(musiccursor.moveToNext()) {
[...]
String data = musiccursor.getString(ixdata);
使用/ mnt / sdcard上的文件,一切正常,但不幸的是,使用/ mnt / USB中的文件,数据似乎为空。
更糟糕的是,媒体播放器只能使用/ mnt / sdcard中文件的content-URI(即content:// media / external / audio / media / 120),而不能使用/ mnt / USB中文件的content-URI (即content:// media / external / audio / media / 530)。
文件还可以,当我给Mediaplayer绝对路径即/mnt/USB/testfile.mp3时,我可以正常播放它们
甚至更奇怪:从USB驱动器上的文件中读取专辑,艺术家,标题等都没有问题
有人有主意吗?
谢谢
我已经问过自己同样的问题,但是我没有找到媒体存储区包含具有空数据行的原因。 我想到的是通过不选择带有和空数据字段的项目(过滤空数据源)在查询中向媒体存储添加“ where子句”。
Cursor cursor = managedQuery(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
MY_COLUMNS,
MediaStore.Audio.Media.DATA + "<> ''",
null,
SORT_ORDER);
哪里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.