0

我有一段代码,它在 ExternalStorage 的 /sdcard 上创建一个文件(GalaxyTab2 7.0 的“内部”8GB 内存)。

directory = new File(Environment.getExternalStorageDirectory(),
                "/logs");
directory.mkdirs();
log = new File(directory.getPath() + "/" + this.filename);
boolean created = log.createNewFile();

在最后一行我收到以下错误:

... java.io.IOException: open failed: EACCES (Permission denied)
...     at java.io.File.createNewFile(File.java:948)

我有

  • 在 manifest 的正确位置设置写入外部存储的权限
  • 检查,内存没有安装在电脑上
  • 检查,/logs/ 文件夹在文件资源管理器中具有正确的权限
  • 阅读有关该主题的每个stackoverflow线程-没有任何效果

有没有人暗示,这会导致这种行为?

此致

4

2 回答 2

2

在清单文件中添加以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2013-06-06T09:51:19.170 回答
1

我使用了一个(自写的)库,它管理所有的内存访问。这个库项目有WRITE_EXTERNAL_STORAGE权限。引用这个库的 App 也必须有这个权限,即使它没有直接访问存储。

于 2013-06-10T09:45:50.630 回答