2015-04-24 2 views
0

Я пытаюсь создать файл во внутреннем хранилище, когда я говорю, что внутреннее хранилище не должно хранить безопасные данные, это будет сохранение некоторых изображений или общедоступных файлов, в которых я пытался все, но это дает мне ошибку и я не знаю, почему D:Android Permission Denied when Writting files

КОД:

File file = new File(Environment.getDataDirectory() + File.separator 
     + "test1111111.txt"); 
Log.e("ERROR", Environment.getDataDirectory() + File.separator 
     + "testfile.txt"); 
try { 
    file.createNewFile(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
byte[] data1 = { 
     1, 1, 0, 0 
}; 
// write the bytes in file 
if (file.exists()) 
{ 
    OutputStream fo = null; 
    try { 
     fo = new FileOutputStream(file); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    try { 
     fo.write(data1); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     fo.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("file created: " + file); 

} 

ОШИБКА:

04-24 03:41:22.704 7797-7797/com.test.test W/dalvikvm﹕ VFY: unable to resolve virtual method 357: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable; 
04-24 03:41:22.744 7797-7797/com.test.test E/ERROR﹕ /data/testfile.txt 
04-24 03:41:22.744 7797-7797/com.test.test W/System.err﹕ java.io.IOException: open failed: EACCES (Permission denied) 
04-24 03:41:22.744 7797-7797/com.test.test W/System.err﹕ at java.io.File.createNewFile(File.java:940) 

МАНИФЕСТ:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.test.test" > 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

    </application> 

</manifest> 

В эмуляторе прекрасно работает, но когда я пытаюсь использовать свой телефон, он дает мне ошибку. EMULATOR: enter image description here

DEVICE: Это дает мне ошибку я был бы признателен за любую помощь, спасибо за ваше время.

EDITED

+0

Вы пишите разрешение в правильном месте. дважды проверьте и запустите снова – Sree

ответ

2

каталог данных является каталогом это системы, вы никогда не можете иметь разрешения на запись в него.

Try, например:

File file = new File(Environment.getExternalStorageDirectory() + File.separator + "testfile.txt"); 

Смотреть это: Data directory has no read/write permission in Android

+0

работал как шарм, большое вам спасибо <3 – kobbycoder

+0

Добро пожаловать :) –

1

Вы не будете иметь права на запись файл в папке/данных. Возможно, вы можете попробовать SD-карту или встроенное хранилище Android.

+0

вы можете мне помочь? я отредактировал мой пост и опубликовал фотографию о том, что я хочу. он работал с эмулятором, но не с телефоном. – kobbycoder

+0

Некоторые телефоны уже имеют SD-карту. SD-карта здесь означает Environment.getExternalStorageDirectory() здесь. внутренние средства хранения android/данные/данные/yourpackagename /. вы можете получить внутреннее хранилище с помощью context.getFilesDir(). Пожалуйста, обратитесь к подробной информации из http://stackoverflow.com/questions/1998400/data-directory-has-no-read-write-permission-in-android – landry

+0

спасибо за вашу помощь, я посмотрю на нее – kobbycoder