2016-09-04 3 views
0

В случае создания каталога во внешней памяти в андроид приложении, которое я использую этот код:сделать внешний каталог андроид

File mDirectory = new File(Environment.getExternalStorageDirectory() + "/myDir"); 

     if (!mDirectory.exists()) { 

      mDirectory.mkdirs(); 

      if (!mDirectory.mkdirs()) { 
       Log.e("App", "failed to create directory"); 
      } 
     } 

но каталог не создал и все время показано сообщение об ошибке в logcat:

App: failed to create directory 

Я также использую как mkdir() и mkdirs(), но результат тот же. где ошибка?

обновление:

AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

ответ

1

На какую версию Android вы запускаете это приложение? Эта цитата из Android Developer Website говорит

Если устройство работает под управлением Android (уровень API 23) 6,0 или выше и targetSdkVersion в приложении является 23 или выше, на запросы приложений разрешений от пользователя во время выполнения , Пользователь может аннулировать разрешения в любое время, поэтому приложению необходимо проверить, имеет ли он разрешения каждый раз, когда он запускает.

Если устройство работает под управлением Android 5.1 (уровень API 22) или ниже, или целевое значение targetSdkVersion приложения составляет 22 или ниже, система просит пользователя предоставить разрешения при установке пользователем приложения.

В настоящее время существует понятие Dangerous permissions. Это есть право доступа пользователь должен предоставить во время выполнения и WRITE_EXTERNAL_STORAGE является одним из тех

Это tutorial на сайте Android Dev научит вас, как запросить разрешение на время выполнения

1

Вы звоните mkdirs дважды. Первый вызов создает каталог. Второй вызов возвращает false, потому что каталог уже существует.

+0

нет никакого каталога в имени устройства хранения 'Mydir ' –

+0

У вас есть разрешения? – F43nd1r

+0

да, мой вопрос обновлен –