Организация файлов на SD-карте в каталогах

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

Когда я смотрю на файловый менеджер с точки зрения DDMS, я вижу, что они находятся в каталоге sdcard / download.

Теперь, если я хочу загрузить несколько аудиофайлов и использовать их в приложении, например, чтобы перечислить названия всех аудиофайлов, будут ли они помещаться в один и тот же каталог? (Я пытаюсь вручную передать аудиофайлы со своего компьютера в эмулятор).

Это не кажется правильным. Разве мультимедийные файлы разных типов (изображения, аудио, видео) не должны помещаться в разные каталоги?

Кроме того, подумав немного, как что-то подобное связано с физическим каталогом на SD-карте?

 Uri mMedia = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;

Спасибо!


person OceanBlue    schedule 27.05.2010    source источник


Ответы (1)


Правильный способ доступа к медиа-контенту - через медиа-поставщиков контента на устройстве.

Поставщики контента упрощают доступ к данным унифицированным способом, независимо от того, хранятся ли эти данные на диске (т.е. /sdcard/...) или в чем-то вроде базы данных SQLite. Поставщики контента обычно предоставляют данные с помощью специальной схемы content:// URI для Android.

Чтобы запросить контент с заданным URI контента (например, MediaStore.Images.Media.EXTERNAL_CONTENT_URI), используйте ContentResolver класс. Примеры использования этого класса можно найти во всех примерах SDK и Android Open Source Project (gitweb).

Также просмотрите класс MediaScannerConnection для получения информации о запуске сканирования мультимедиа (который заполняет поставщиков медиаконтента) и т. д.

person Roman Nurik    schedule 28.05.2010
comment
Роман, спасибо, что нашли время ответить. Я использую API-интерфейсы Content Provider, на которые вы ссылаетесь в моем коде (кроме MediaScannerConnection - я его найду). Однако, чтобы протестировать код, мне нужно загрузить несколько носителей на SD-карту эмулятора. Мой вопрос заключался в том, как физически хранить файлы на SD-карте ... то есть в какие каталоги помещать файлы аудио / изображений / vedio. Я просто помещаю все файлы в каталог / sdcard, или я могу организовать их в отдельные каталоги? А если второе, то как? - person OceanBlue; 28.05.2010
comment
Медиа-сканер будет просматривать всю SD-карту в поисках носителя, поэтому вы можете разместить его в любой структуре каталогов, которая имеет смысл для вашего приложения и будет иметь смысл для пользователя, если он установит карту на свой компьютер. - person Roman Nurik; 28.05.2010