ContentResolver mResolver;
...
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
Cursor cur = mResolver.query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,
selection,
null,
null);
if (!cur.moveToFirst()) {
Log.e(TAG, "Failed to move cursor to first row (no query results).");
return;
}
之后光标不包含手机上的所有音乐。例如,虽然它们有mp3格式,但它看不到我的dictophone记录。记录的目录/ sdcard / Recorder中没有文件.nomedia。如果我在这个目录中放置一些mp3并扫描媒体更改,ContentResolver会找到这个mp3,但只有这个,所以记录对它来说是不可见的。
有人可以解释一下为什么ContentResolver的行为如此奇怪吗?
答案 0 :(得分:1)
boruno!
我有类似的问题,我想我终于找到了解决方案
我在我的应用程序中使用了光标,并尝试将数据源设置为MediaMetaRetriever,如下所示:
mmr.setDataSource(path);
因此,当光标无法设置数据源时,它会产生一个例外:
E/cursor: setDataSource failed: status = 0xFFFFFFEA
之后,光标自行停止 我刚刚使用了try-catch块并获取了所有音乐文件 希望它有所帮助。