У меня есть приложение, которое использует внешнее хранилище для хранения фотографий. При необходимости в своем манифесте запрашиваются следующие разрешения:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
и для получения требуемого каталога
используется следующее:File sdDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd", Locale.US);
String date = dateFormat.format(new Date());
storageDir = new File(sdDir, getResources().getString(
R.string.storagedir)
+ "-" + date);
// Create directory, error handling
if (!storageDir.exists() && !storageDir.mkdirs()) {
... fails here
Приложение отлично работает на Android от 5.1 до 2.3; он уже больше года работает в Google Play.
После обновления одного из моих тестовых телефонов (Android One) до 6 он теперь возвращает ошибку при попытке создать требуемый каталог "/sdcard/Pictures/myapp-yy-mm".
SD-карта настроена как "переносное хранилище". Я отформатировал SD-карту. Я заменил его. Я перезагрузился. Все безрезультатно.
Кроме того, встроенная функция скриншотов Android (с помощью Power + Lower volume) терпит неудачу "из-за ограниченного пространства для хранения или не допускается приложением или вашей организацией".
Любые идеи?