Как в Android запросить в MediaStore файлы по определенному пути? Или, как вариант, отображать файлы только по определенному пути?

Предположим, у меня есть блок кода Android, который выглядит примерно так:

String[] proj = {MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media._ID};
int[] to = new int[] { R.id.artist_name };
Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null, MediaStore.Audio.Media.ARTIST);
ListView musiclist = (ListView) findViewById(R.id.mylist);

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.songitem, musiccursor, proj, to);
musiclist.setAdapter(mAdapter);

Но я хочу следующее:

String selection = MediaStore.Audio.Media.FILE_PATH + " ilike '%audio%books%'";

String[] proj = {MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media._ID};
int[] to = new int[] { R.id.artist_name };
Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, selection, null, MediaStore.Audio.Media.ARTIST);
ListView musiclist = (ListView) findViewById(R.id.mylist);

SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.songitem, musiccursor, proj, to);
musiclist.setAdapter(mAdapter);

Единственная проблема, конечно, в том, что FILE_PATH на самом деле не столбец Я могу использовать и, насколько я могу судить, такой столбец не существует.

Поэтому мне интересно:

  1. Есть ли способ запрашивать музыку только в определенном каталоге? Если да, то как?
  2. Если это не вариант, следует ли создать ListAdapter, фильтрующий по каталогам? Если да, то как мне это сделать?

Спасибо за любой совет.

5
задан Ken Kinder 1 June 2011 в 22:48
поделиться