внутренние и внешние URI при извлечении данных из mediastore - PullRequest
4 голосов
/ 30 января 2011

Надеюсь, кто-нибудь сможет мне это объяснить ... Я работаю над простым приложением для видеоплеера, которое воспроизводит видеоклипы, хранящиеся на телефоне.

Все примеры, которые я видел, извлекали видео с использованием контента MediaStore.Video.Media.EXTERNAL_CONTENT_URI Uri, что-то вроде этого

cursor = resolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, cols, whereClause, null, sortOrder);

Но не ограничит ли он список только файлами, хранящимися на SD-карте?

Новые телефоны Android имеют значительный объем внутренней памяти - например, Samsung Galaxy S обычно поставляется с 16 ГБ встроенной памяти и 2 ГБ SD-карты.

Стоит ли сканировать mediastore дважды с внешним контентом uri и внутренним?

Снова я увидел около 10 примеров для аудио и видео проигрывателей, и все они используют только внешние.

Даже проверил исходный код для штатного музыкального плеера , и он также тянет только с внешней карты.

Ответы [ 2 ]

8 голосов
/ 01 февраля 2011

провел несколько тестов, и, кажется, ответ зависит от него. На эмуляторе Android и HTC MyTouch он выбирает только элементы на внешней SD-карте, в то время как на Samsung Galaxy S он фактически извлекает из внутренней памяти.

Это часть, которую я действительно ненавижу в Android - почему такие простые вещи такие разные

1 голос
/ 01 февраля 2011

Можете ли вы просто использовать

MediaStore.Video.Media.INTERNAL_CONTENT_URI

...