Java 打开失败:SD卡上的EACCES(权限被拒绝)
我无法将FileWriter与SD卡上的文件一起使用 我在清单中有以下权限Java 打开失败:SD卡上的EACCES(权限被拒绝),java,android,sd-card,filewriter,Java,Android,Sd Card,Filewriter,我无法将FileWriter与SD卡上的文件一起使用 我在清单中有以下权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 我知道/storage/extSdCard/00-Copy.txt存在,因此在logcat中
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我知道/storage/extSdCard/00-Copy.txt存在,因此在logcat中得到了以下内容
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ java.io.FileNotFoundException: /storage/extSdCard/00 - Copy.txt: open failed: EACCES (Permission denied)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:456)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:87)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileOutputStream.<init>(FileOutputStream.java:127)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at java.io.FileWriter.<init>(FileWriter.java:96)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at tk.hasankassem.supererase.MainActivity$5.run(MainActivity.java:302)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.Posix.open(Native Method)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ at libcore.io.IoBridge.open(IoBridge.java:442)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ ... 4 more
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ java.io.FileNotFoundException:/storage/extSdCard/00-Copy.txt:open失败:EACCES(权限被拒绝)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 在libcore.io.IoBridge.open中(IoBridge.java:456)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 位于java.io.FileOutputStream。(FileOutputStream.java:87)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 位于java.io.FileOutputStream。(FileOutputStream.java:127)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 位于java.io.FileWriter(FileWriter.java:96)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 位于tk.hasankassem.supererase.MainActivity$5.run(MainActivity.java:302)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 原因:android.system.ErrnoException:打开失败:EACCES(权限被拒绝)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 在libcore.io.Posix.open中(本机方法)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 在libcore.io.BlockGuardOs.open上(BlockGuardOs.java:186)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ 在libcore.io.IoBridge.open中(IoBridge.java:442)
07-14 14:50:48.722 18216-19903/tk.hasankassem.supererase W/System.err﹕ ... 4更多
我尝试过使用Environment.getExternalStorageDirectory(),但它也不起作用
更新
当我使用Environment.getExternalStorageDirectory()时,它写入内部存储器而不是SD卡。以下权限应在
标记之外定义
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
您是在emulator还是在real device上进行测试?我正在real device(三星Galaxy Note 4,棒棒糖)上进行测试,尝试创建您自己的应用程序目录/文件夹,并将您的文件保存在该目录中并尝试访问它。在MI device中仍然面临同样的问题。请提供一些解决方案
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />