Я создал функцию для извлечения видео
private val projectionVideo = arrayOf(
MediaStore.Video.Media._ID, //ID
MediaStore.Video.Media.DISPLAY_NAME, //NAME
MediaStore.Video.Media.DATA, //PATH TO CONTENT
MediaStore.Video.Media.DATE_TAKEN, //DATE
MediaStore.Video.Media.DURATION,
MediaStore.Video.Media.SIZE
)
private fun queryVideos(cr: ContentResolver): Cursor? =
cr.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
projectionVideo, null, null,
MediaStore.Video.Media.DATE_TAKEN + " $SORT_ORDER"
)
В Java
public static Uri getContentUri(String volumeName) {
return Uri.parse(CONTENT_AUTHORITY_SLASH + volumeName +
"/video/media");
}
/**
* The content:// style URI for the internal storage.
*/
public static final Uri INTERNAL_CONTENT_URI =
getContentUri("internal");
/**
* The content:// style URI for the "primary" external storage
* volume.
*/
public static final Uri EXTERNAL_CONTENT_URI =
getContentUri("external");
Проблема в том, что эта видео не отображается ни в каких путях, например «DCIM» , 'WhatsApp Videos' et c. Каждое видео, которое я создаю с помощью своего собственного приложения, будет правильно вставлено, в отличие от тех, которые созданы приложением камеры по умолчанию, если только я не открою их сначала.