Запрос MediaStore с использованием URI - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь найти способ запросить медиа-хранилище для отдельных файлов через URI. У меня есть список Uris, для которого я хотел бы предоставить дополнительную информацию в моем приложении.

Например: Содержание: // СМИ / внешние / аудио / СМИ / 10

или

Файл: ///sdcard/media/audio/sample.mp3

Вот код, над которым я работаю. Я не уверен, какой идентификатор должен быть?

        String[] cols = new String[] {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.TITLE
        };


        String where = MediaStore.Audio.Media._ID + "=" + id;

        String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE, MediaStore.Audio.Media.ALBUM };

        Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, cols, null);

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Хорошо, я понял это. Вот ссылка на информацию, которую я получил после:

http://developer.android.com/guide/topics/providers/content-providers.html

А вот код, который делает это:

Uri uri = Uri.parse("content://media/external/audio/media/10");
Cursor musiccursor = managedQuery(uri, null, null, null, null);

if (musiccursor.moveToFirst()) {
    String title; 
    int titleColumn = musiccursor.getColumnIndex(MediaStore.Audio.Media.TITLE); 
    title = musiccursor.getString(titleColumn);
}   
1 голос
/ 23 марта 2012

Нет необходимости получать все за один столбец. Попробуйте это:

Uri uri = Uri.parse("content://media/external/audio/media/10");
String[] columns = new String[] {MediaStore.Audio.Media.TITLE};
Cursor musiccursor = managedQuery(uri, columns, null, null, null);

if (musiccursor.moveToFirst()) {
    String title = musiccursor.getString(0);
}   
...