Как получить каталог фотографий по умолчанию, сделанный камерой в android?

Я надеюсь получить каталог фотографий по умолчанию, сделанный камерой в android.

Я думаю, что код А может это сделать, и /storage/sdcard0/DCIM отображается в журнале,

Но на самом деле мои фотографии, сделанные камерой, хранятся в папке /storage/extSdCard/DCIM

Как я могу получить каталог фотографий по умолчанию, сделанный камерой в android? Благодаря!

Код А

 File dir10 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM); Log.e("MainActivity", "getExternalStoragePublicDirectory() 10:" + dir10.toString()); 

Больше

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

Введите описание изображения здесь

1.Это будет работать только в том случае, если пользователь не изменил значение по умолчанию. Выход камеры Dir

Согласно документации, существует два варианта

DIRECTORY_DCIM Традиционное расположение изображений и видео при установке устройства в качестве камеры.

 File musicDirectory = new File( getExternalFilesDir(Environment.DIRECTORY_DCIM)); 

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

 File musicDirectory = new File( getExternalFilesDir(Environment.DIRECTORY_PICTURES)); 

GetExternalFilesDir () вернет объект File

Вы можете сослаться на страницу разработчика

2. Существует еще один трюк, который вы можете сделать, если по крайней мере один снимок сделан в камере

 String[] projection = new String[]{MediaStore.Images.ImageColumns._ID,MediaStore.Images.ImageColumns.DATA,MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,MediaStore.Images.ImageColumns.DATE_TAKEN,MediaStore.Images.ImageColumns.MIME_TYPE}; final Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,projection, null, null, MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC"); if(cursor != null){ cursor.moveToFirst(); //you can access last taken pics here. } 

Environment.getExternalStoragePublicDirectory используется для получения каталогов только для внутреннего хранилища.

Чтобы получить папку DCIM на вашем вторичном хранилище (если существует), вам необходимо следовать этому коду:

 String secondStorage = System.getenv("SECONDARY_STORAGE"); File file = new File(secStore + "/DCIM"); File[] listFiles = file.listFiles(); 

Используйте getExternalStoragePublicDirectory() с параметром DIRECTORY_PICTURES

 File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); File file = new File(path, "DemoPicture.jpg"); 

DIRECTORY_DCIM является традиционным местом для изображений и видео при установке устройства в качестве камеры.

DIRECTORY_PICTURES – это стандартный каталог, в котором можно разместить изображения, доступные пользователю.

Надеюсь, поможет !