#android #mediastore
#Android #mediastore
Вопрос:
В моем приложении я пытаюсь создать галерею изображений для отображения изображений, сделанных с помощью приложения из папки, созданной в приложении.
public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
// File imageDestPath = new File(getApplicationContext().getFilesDir(), "cropped");
String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.MEDIA_TYPE
};
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE "="
MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
" OR "
MediaStore.Files.FileColumns.MEDIA_TYPE " = "
MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
return new CursorLoader( this,
MediaStore.Files.getContentUri( "external" ),
projection,
selection,
null,
MediaStore.Files.FileColumns.DATE_ADDED " DESC"
);
}
Я использую приведенный выше код для получения файлов из папки. Однако приведенный выше код использует:
MediaStore.Files.getContentUri( "external" ),
внешний каталог. При этом отображаются изображения в моей папке DCIM / Camera телефона. Когда я попытался изменить это на внутреннюю папку, я не получаю никаких изображений. Я попробовал следующее:
File imageDestPath = new File(getApplicationContext().getFilesDir(), "cropped");
и использовал imageDestPath
в
MediaStore.Files.getContentUri( imageDestPath ), //not working
MediaStore.Files.getContentUri( "internal" ), //not displaying any images - no error
MediaStore.Files.getContentUri( getFilesDir.getName() ), //not displaying any images - no error
MediaStore.Files.getContentUri( getFilesDir() "cropped" ), //not displaying any images - no error
Я думаю, что я не понял MediaStore.Files.getContentUri часть правильно. Когда я прикрепляю imageDestPath
к тосту, он правильно отображает папку.
Ответ №1:
Когда я попытался изменить это на внутреннюю папку, я не получаю никаких изображений
MediaStore
не имеет доступа к этим изображениям и getContentUri()
не поддерживает внутреннее хранилище.