2016-01-17 6 views
0

Я пытаюсь создать папку с mkdir() с приложением на планшете Google Nexus 7. После этого я сохраняю изображение в этой папке.Приложение для Android: mkdir() не работает в Google Nexus 7

Соответствующий код:

// Create the storage directory if it does not exist 
    if (!mediaStorageDir.exists()) { 
     if (!mediaStorageDir.mkdir()) { 
      Log.d(TAG, "Oops! Failed create " 
        + Config.IMAGE_DIRECTORY_NAME + " directory"); 
      return null; 
     } 
    } 

и журнал говорит: "Нам удалось создать userImages".

То, что я пытался до сих пор:

  • тестирование приложения на Samsung Galaxy S3 мини с Android 4.1.2 и она работала. (-> это, кажется, устройство специфический)

  • Добавление разрешения
    < uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    к AndroidManifest.xml

  • с использованием mkdirs() вместо MKDIR()

  • функция

    //Check SD card state 
    String state = Environment.getExternalStorageState(); 
    if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state) || !Environment.MEDIA_MOUNTED.equals(state)) { 
        Log.e(TAG, "Error: external storage is read only or unavailable"); 
    } else { 
        Log.d(TAG, "External storage is not read only or unavailable"); 
    } 
    

    дает «Внешнее хранилище не Только для чтения или недоступно ».

Мой код:

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="de.hbksaar.bubbles"> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 

ли кто-нибудь есть ключ, почему это не возможно для меня, чтобы создать эту папку?

ответ

0

Какую версию ОС Android вы использовали? При запуске на Android 6.0, это может быть из-за вас приложением выигрыша, Хранения разрешения, перейдите Настройка ->Apps ->Вашего приложение ->Права доступа перепроверить ваше приложение имеет хранение разрешение. Грант Хранение разрешение, если оно еще не предоставлено.

Попробуйте ввести полный путь mediaStorageDir, чтобы убедиться, что это правильный путь на SD-карте.

Также попробуйте использовать mkdirs() для создания несуществующих родительских каталогов.

+0

Когда я меняю настройки разрешений, он работает! Благодаря! Но я хочу иметь разрешение на запись по умолчанию, например. при установке приложения или, по крайней мере, пользователю следует спросить, когда я пытаюсь написать, как это возможно? –

+0

Разрешение на проверку заказа во время выполнения: http://developer.android.com/training/permissions/requesting.html –

0

Если версия для андроида - зефир, тогда проверка разрешения является динамической.

Пожалуйста, используйте ContextCompat для разрешения чека.

+0

Проверено с помощью «ContextCompat.checkSelfPermission (это, разрешение)»; и результатом было PERMISSION_DENIED. Почему статическое разрешение! = Разрешение во время выполнения? Что я могу сделать? –

+0

проверьте это. http://developer.android.com/training/permissions/requesting.html –

 Смежные вопросы

  • Нет связанных вопросов^_^