Ответ 1
Используйте getExternalStoragePublicDirectory()
с параметром DIRECTORY_PICTURES
(или, для других вариантов использования, другие аналогичные параметры, такие как DIRECTORY_MOVIES)
Я разрабатываю приложение для Android для Android.
Одним из требований является сохранение фотографий, сделанных в папке с фотографией камеры по умолчанию, то есть в папке, в которой хранится его собственная камера Android.
Как я могу определить, где встроенная камера хранит фотографии, которые она принимает - я понимаю, что это может быть другим для разных производителей (Samsung, HTC, Motorola, Sony...) и моделей (Galaxy Tab, Galaxy S4...)
Используйте getExternalStoragePublicDirectory()
с параметром DIRECTORY_PICTURES
(или, для других вариантов использования, другие аналогичные параметры, такие как DIRECTORY_MOVIES)
Я знаю это немного поздно для этого, но вы можете это сделать:
String CameraFolder="Camera";
File CameraDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString());
File[] files = CameraDirectory.listFiles();
for (File CurFile : files) {
if (CurFile.isDirectory()) {
CameraDirectory=CurFile.getName();
break;
}
}
final String CompleteCameraFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString() + "/" + CameraFolder;
По желанию вы можете выполнить свою операцию внутри цикла for.
Дополнительная информация по этой теме. Вам нужно добавить разрешение на доступ к внешнему хранилищу или listFiles()
всегда возвращает null. Добавьте ниже к вашему AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.tomoima.filedirectory"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
...