/ sdcard中createNewFile()的权限被拒绝

时间:2013-06-06 09:38:16

标签: android

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

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)

我有

  • 在清单
  • 中的正确位置设置写入外部存储的权限
  • 选中,内存未安装在pc
  • 选中,/ logs /文件夹在文件资源管理器中显示正确的权限
  • 读取关于该主题的每个stackoverflow线程 - 没有任何工作

是否有人提示,这会导致此行为?

最好的问候

2 个答案:

答案 0 :(得分:2)

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

答案 1 :(得分:1)

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