I know there are many other Questions about this. I searched and searched but none of the answers seems to help. If I want to create and save a .txt on my sdcard I get the following Error:
11-05 10:13:31.244 11781-11781/com.sbeyer.daainv W/System.err: java.io.IOException: open failed: EACCES (Permission denied)
11-05 10:13:31.252 11781-11781/com.sbeyer.daainv W/System.err: at java.io.File.createNewFile(File.java:939)
11-05 10:13:31.252 11781-11781/com.sbeyer.daainv W/System.err: at com.sbeyer.daainv.ListViewFragment$4.onClick(ListViewFragment.java:118)
11-05 10:13:31.252 11781-11781/com.sbeyer.daainv W/System.err: at android.view.View.performClick(View.java:5198)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at android.view.View$PerformClick.run(View.java:21147)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at android.os.Handler.handleCallback(Handler.java:739)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at android.os.Looper.loop(Looper.java:148)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5417)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at java.lang.reflect.Method.invoke(Native Method)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at libcore.io.Posix.open(Native Method)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
11-05 10:13:31.253 11781-11781/com.sbeyer.daainv W/System.err: at java.io.File.createNewFile(File.java:932)
I think the permission is correct:
<manifest [...]
<application
[...]
<activity
[...]
<intent-filter>
[...]
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
This is my code:
buttonexport.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
String fileName = "DAA_Raum_Nr_" + roomnr.getText().toString() + ".txt";
File file = new File (Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName);
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter fos = new OutputStreamWriter(fOut);
fos.write(dataList);
fos.close();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
I also tried to unplug my device (rooted N5) but also no file on my sdcard.
I changed the target API to 22 to avoid complex permission handling (Android 6)
I also added the following Code to create a folder if there is no one with the wanted name.
@Override
public void onClick(View view) {
try {
File myDir = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+ "/DAA_Raeume");
if (!myDir.exists()) {
myDir.mkdir();
}
String fileName = "DAA_Raum_Nr_" + roomnr.getText().toString() + ".txt";
File file = new File (myDir, fileName);
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter fos = new OutputStreamWriter(fOut);
fos.write(dataList);
fos.close();
fOut.close();
} catch (Exception e) {
e.printStackTrace();
}
}
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
请添加上述权限。
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.