Я разрабатываю приложение для Android на Kotlin, и мне нужно получить список фотографий и видео из памяти устройства. Я читал, что для этой цели можно использовать MediaStore, но не знаю, как настроить запрос для эффективного получения как изображений, так и видео.
Вот что я попробовал далеко:
Запрашиваются MediaStore.Images.Media и MediaStore.Video.Media отдельно для получения изображений и видео.
Использовал ContentResolver для доступа к медиафайлам.
// Извлекаем фотографии
val imageProjection = arrayOf(MediaStore.Images .Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATE_ADDED)
val imageCursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageProjection, null, null, null)
// Извлечение видео
val videoProjection = arrayOf(MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATE_ADDED)
val videoCursor = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoProjection, null, null, null)
Однако я не уверен, что это наиболее эффективный способ или мне следует использовать определенные столбцы для оптимизации запроса.
Я хочу получить объединенный список фотографий и видео с подробными сведениями. например имя файла, URI и дата добавления. Решение должно обрабатывать разрешения во время выполнения для доступа к внешнему хранилищу.
Я разрабатываю приложение для Android на Kotlin, и мне нужно получить список фотографий и видео из памяти устройства. Я читал, что для этой цели можно использовать MediaStore, но не знаю, как настроить запрос для эффективного получения как изображений, так и видео. Вот что я попробовал далеко: [list] [*]Запрашиваются MediaStore.Images.Media и MediaStore.Video.Media отдельно для получения изображений и видео.
[*]Использовал ContentResolver для доступа к медиафайлам. // Извлекаем фотографии val imageProjection = arrayOf(MediaStore.Images .Media._ID, MediaStore.Images.Media.DISPLAY_NAME, MediaStore.Images.Media.DATE_ADDED) val imageCursor = contentResolver.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageProjection, null, null, null) // Извлечение видео val videoProjection = arrayOf(MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATE_ADDED) val videoCursor = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoProjection, null, null, null)
[/list] Однако я не уверен, что это наиболее эффективный способ или мне следует использовать определенные столбцы для оптимизации запроса. Я хочу получить объединенный список фотографий и видео с подробными сведениями. например имя файла, URI и дата добавления. Решение должно обрабатывать разрешения во время выполнения для доступа к внешнему хранилищу.